逐行读取文本文件中的信息

non*_*one 3 c file-io

我想学习如何逐行读取.txt文件C,以便每行中的信息可以用于循环等.我没有这方面的功课,但我需要弄清楚一个项目写一个天文包的脚本.

所以为了学习如何做到这一点,我创建了一个名为list.txt1,2,3,4,5,6,7,8,9 的文件,每个文件在不同的行上,我希望程序对每行的值求和.我还创建了一个调用的输出文件sum.txt,该程序应该对行进行求和,并将总和打印到输出文件中.

我运行程序时遇到错误,我不确定问题是什么,因为我不完全理解这一点.我在一本关于C的书中得到了这个程序,并尝试修改它以在我的PC上运行它.

我需要能够做到这一点的原因是因为我需要从列表中的每一行获取信息(每行包含一个字符串).但我想学习先用数字来做.

这是代码:

#include<stdio.h>

int main(void)
{
    int a, sum = 0;
    FILE *ifp, *ofp;
    ifp = fopen("list.txt", "r");
    ofp = ("sum.txt", "w");
    while (fscanf(ifp, "%d", &a) == 1)
    {
        sum += a;
        fprintf(ofp, "The sum is %d. \n", sum);
        fclose(ifp);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

int*_*jay 6

你忘了写fopen在这里:

ofp = ("sum.txt", "w");
Run Code Online (Sandbox Code Playgroud)

此外,您应该移动while循环fclose(可能还有fprintf),因为您只想在读完所有行后关闭文件.