我最近做了一个程序,结果我的作业出错了。我有所有正确的步骤,但我不应该从命令行执行它,而是从IDE运行它(如果这是有意义的)。
我应该做的是进入文件" numbers.txt"并读取其中的整数(那里已有数字)。我想找到sum,product和最高整数,并将它们输出到名为" stat.txt"的文本中。但是,我对如何从编译器中执行此操作感到困惑。我在同一目录中有两个文件,但是当我在编译器中运行它时,它说"无法读取输入文件。"我不知道如何使用编译器只读取文本文件,因为我习惯使用命令行。
这是我的代码(我无法获得最大值以适应代码)。
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);
}
答案 0 :(得分:3)
您使用的是什么IDE?您正在向fopen提供numbers.txt的相对路径,它必须与可执行文件存在于同一目录中。
将numbers.txt放入IDE构建程序的同一文件夹中,或者为其提供绝对路径,例如' /home/username/Desktop/number.txt'