写入文件
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”
我最近做一个程序,结果做错了作业。但是,我的所有步骤都是正确的,我不应该从命令行执行此操作,而是 运行 从 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”