写入文件

Writing to Files

我最近做一个程序,结果做错了作业。但是,我的所有步骤都是正确的,我不应该从命令行执行此操作,而是 运行 从 IDE 执行(如果有意义的话)。

我应该做的是进入文件 "numbers.txt" 并读取其中的整数(那里已经有数字)。我想找到总和、乘积和最大整数并将它们输出到一个名为 "stat.txt" 的文本中。但是,我对如何从我的编译器中做到这一点感到困惑。我在同一个目录中有两个文件,但是当我在编译器中 运行 它时,它显示 "Can not read input file." 我不知道如何使用编译器来读取文本文件,因为我太习惯了使用命令行。

这是我的代码(我无法让 max 适合代码)。

int main (int argc, char *argv[]) {

    int number = 0;
    int sum = 0;
    int product = 1;
    int max = 0; 

    FILE *input, *output;
    input = fopen("numbers.txt", "r");
    output = fopen("stat.txt", "w");

    if (input == NULL) {
        printf("Can not read the input file\n");
        exit(-1);
    }

    while ((fscanf(input, "%d", &number)) != EOF) {
            sum = sum + number;
            product = product * number;
        if (number > max){
            max = number;
        }
    }
    fprintf(output, "Sum : %d\n", sum);
    fprintf(output,"Product : %d\n", product);
    fprintf(output, "Largest: %d", max);
    fclose(input); fclose(output);
}

你在用什么IDE?您正在为 fopen 提供 numbers.txt 的相对路径,它必须与可执行文件位于同一目录中。

要么将 numbers.txt 放入您的 IDE 构建程序的同一文件夹中,要么为其提供绝对路径,如“/home/username/Desktop/number.txt”