kyukyu666 2022-08-17 09:32 采纳率: 0%
浏览 68
已结题

关于#c语言#的问题,如何解决?

1.c语言解决一个程序编程问题:手工建立一个文本文件,里面有A、B、C三列,多行(如10行)。通过程序读取每行的A、B列值,相加后写入对应的C列
2.该问题涉及的c语言知识点

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-08-17 09:35
    关注

    列之间用什么进行间隔呢?空格?逗号?
    用fopen打开文件,逐行读取,然后用sscanf进行拆分项,得到A和B后相加,将ABC存储到数据结构数组,处理完文件后再fprintf写入文件

    #include <stdio.h>
    #include <stdlib.h>
    typedef struct _data
    {
        int a;
        int b;
        int c;
    }DATA;
    
    int main()
    {
        DATA data[1000]={0};
        int count = 0,i=0;
        char buf[1000] = {0};
        char *p = NULL;
        FILE *fp1 = fopen("D:\\a.txt","r");
        FILE *fp2 = NULL;
        if(fp1 == NULL)
            return 0;
        p = fgets(buf,1000,fp1);
        while(p != NULL)
        {
            sscanf(buf,"%d %d",&data[count].a,&data[count].b);
            data[count].c = data[count].a+data[count].b;
            count++;
            p = fgets(buf,1000,fp1);
        }
        fclose(fp1);
        fp2 = fopen("D:\\a.txt","w");
        if(fp2 == NULL)
            return 0;
        for(i=0;i<count;i++)
        {
            fprintf(fp2,"%d %d %d\n",data[i].a,data[i].b,data[i].c);
        }
        fclose(fp2);
        return 0;
    }
    
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月17日
  • 创建了问题 8月17日