c语言 读入txt数据文件存入数组,并输出

输出文本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,
......................

4个回答

 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位就可以,输入和输出所有数字都是以逗号隔开。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐