该代码有什么问题#include <stdio.h> int main() { int num; FILE* fp1 = fopen("file.txt", "w"); for (int i = 0; i < 3; i++) { scanf("&d", &num); fprintf(fp1, "%d", num); } fclose(fp1); FILE* fp2 = fopen("file.txt", "r"); while (1) { fscanf(fp2,"%d",n
时间: 2023-07-19 21:20:30 浏览: 160
c语言文件读写操作代码.docx
这段代码有几个问题:
1. 在第14行,变量n未被声明,应该是num。
2. 在第11行,scanf的格式控制字符串中应该是%d,而不是&d。
3. 在第12行,fprintf的输出格式控制字符串应该包含一个换行符(\n)或者空格符(' '),否则输出的数字将连在一起。
4. 在第15行,应该在fscanf的格式控制字符串中加上文件结束符EOF的判断,否则会无限循环输出数字。
以下是修改后的代码:
```
#include <stdio.h>
int main() {
int num;
FILE* fp1 = fopen("file.txt", "w");
for (int i = 0; i < 3; i++) {
scanf("%d", &num);
fprintf(fp1, "%d ", num);
}
fclose(fp1);
FILE* fp2 = fopen("file.txt", "r");
while (fscanf(fp2, "%d", &num) != EOF) {
printf("%d ", num);
}
fclose(fp2);
return 0;
}
```
阅读全文