怎么用C语言输出表格

Python021

怎么用C语言输出表格,第1张

1、首先在打开的C语言软件中,如下图所示,添加stdio.h头文件。

2、然后添加main主函数,如下图所示。

3、接着在下一行,添加返回值return 0,如下图所示。

4、然后添加printf("A\tB\n")语句, \t可以输出空格,如下图所示。

5、接着点击!按钮,执行程序,如下图所示。

6、最后弹出控制台,输出了A、B,成功输出了空格了,如下图所示就完成了。

通过二维数组的方式进行输出,代码如下:

#include<stdio.h>

#include<string.h>

char S[100][1000]={' '}//声明表为全局变量

int s1=0

void chart(int n,int a[],int m)

int main()

{

int n

int M1[40]={0},M2[40]={0},M3[40][100]={0}

int i,j,k,k1,k2,max=0,col,l

char s[30][1000]

scanf("%d",&n)

getchar()//注意,必须得有这个来接收回车符

//获得表格数据

for(i=0i<ni++)

gets(s[i])

//求最大列数

for(i=0i<ni++)

{

l=strlen(s[i])

for(j=0j<lj++)

{

if(s[i][j]==',')

M1[i]++

}

if(M1[i]>max)

{

max=M1[i]

}

}

col=++max

//求每列最大宽度 //1.先求每个单元的长度,赋给M3[i][j]中

for(i=0i<ni++)

{

l=strlen(s[i])

k=0

for(j=0j<lj++)

{

if(s[i][j]!=',')

{

M3[i][k]++

}

if(s[i][j]==',')

k++

} //for2

}//for1

//2.找每列最大的赋予M2[]

for(j=0j<colj++)

{

max=0

for(i=0i<ni++)

{

if(M3[i][j]>max)

max=M3[i][j]

}

M2[j]=max

}

//表格

chart(n,M2,col)

//输入数据

for(i=0i<ni++)

{

k1=0

k2=0

k=0

l=strlen(s[i])

for(j=0j<lj++)

{

S[2*i+1][k2+1]=s[i][j]

if(s[i][j+1]==',')

{

k1=k1+M2[k]+1

k2=k1

k++

j++

}

else

k2++

}

}

//输出表格

for(i=0i<=2*ni++)

{

for(j=0j<s1j++)

printf("%c",S[i][j])

printf("\n")

}

return 0

}

void chart(int n,int a[],int m)//行数 每列的最大长度数组

{

int i,j,k

int s

s1=m+1

for(i=0i<mi++)

s1+=a[i]

for(i=0i<=2*ni++)

{

//输出奇数行

if(i%2==0)

{

s=0

k=0

for(j=0j<s1j++)

{

if(j==s)

{

S[i][j]='+'

s+=a[k]

s++

k++

}

else

S[i][j]='-'

}//for

} //if

//输出偶数行

else

{

s=0

k=0

for(j=0j<s1j++)

{

if(j==s)

{

S[i][j]='|'

s+=a[k]

s++

k++

}

}

}

} //for

}

简单的方法是通过ODBC来实现:

具体实现

一、 包含Excel文件操作类头文件

#include "CSpreadSheet.h"

二、 新建Excel文件,并写入默认数据

// 新建Excel文件名及路径,TestSheet为内部表名

CSpreadSheet SS("c:\\Test.xls", "TestSheet")

CStringArray sampleArray, testRow

SS.BeginTransaction()

// 加入标题

sampleArray.RemoveAll()

sampleArray.Add("姓名")

sampleArray.Add("年龄")

SS.AddHeaders(sampleArray)

// 加入数据

CString strName[] = {"徐景周","徐志慧","郭徽","牛英俊","朱小鹏"}

CString strAge[] = {"27","23","28","27","26"}

for(int i = 0i <sizeof(strName)/sizeof(CString)i++)

{

sampleArray.RemoveAll()

sampleArray.Add(strName[i])

sampleArray.Add(strAge[i])

SS.AddRow(sampleArray)

}

SS.Commit()

三、 读取Excel文件数据

CSpreadSheet SS("c:\\Test.xls", "TestSheet")

CStringArray Rows, Column

//清空列表框

m_AccessList.ResetContent()

for (int i = 1i <= SS.GetTotalRows()i++)

{

// 读取一行

SS.ReadRow(Rows, i)

CString strContents = ""

for (int j = 1j <= Rows.GetSize()j++)

{

if(j == 1)

strContents = Rows.GetAt(j-1)

else

strContents = strContents + " -->" + Rows.GetAt(j-1)

}

m_AccessList.AddString(strContents)

}