输出文本11.txt
1,2,5,3,66,32,11,22,
34,55,8,5,6,5,4,43,
36,35,34,42,23,43,23,43,
...................
存入数组再输出保存22.txt
01,02,05,03,
66,32,11,22,
34,55,08,05,
06,05,04,43,
36,35,34,42,
23,43,23,43,
......................
struct Data
{
int nRow[8];
};
int main()
{
Data data[3];
FILE *fp = fopen("1.txt","rb");
if (fp == NULL)
{
printf("can not open file!\n");
exit(0);
}
for(int i = 0;i < 3;i ++)
{
int nRes = fscanf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,",&data[i].nRow[0],&data[i].nRow[1],&data[i].nRow[2],
&data[i].nRow[3],&data[i].nRow[4],&data[i].nRow[5],&data[i].nRow[6],&data[i].nRow[7]);
if (nRes == -1)
{
fclose(fp);
}
}
fclose(fp);
fp = fopen("2.txt","w+");
if (fp == NULL)
{
printf("can not open file!\n");
exit(0);
}
for (int i = 0;i < 3;i ++)
{
char czBuf[100] = {0};
sprintf(czBuf,"%02d,%02d,%02d,%02d,\n%02d,%02d,%02d,%02d,\n",data[i].nRow[0],data[i].nRow[1],data[i].nRow[2],
data[i].nRow[3],data[i].nRow[4],data[i].nRow[5],data[i].nRow[6],data[i].nRow[7]);
fwrite(czBuf,strlen(czBuf),1,fp);
}
fclose(fp);
return 0;
}
也就是读取一个文件,这个文件中是8个数字一行,然后把数据写到另外一个文件中,改成4个数字一行,并且把不足两位的数字补齐。是这样的条件吗?有没有大于两位的数字?
是的,输入文件是8个数字一行,但一定要先存入数组,再输出4个数字一行,正常是一位 至五位 。不足的补2位就可以,输入和输出所有数字都是以逗号隔开。
https://wenku.baidu.com/view/afea32d9376baf1ffd4fad0d.html
类似的代码,你参考下