该代码有什么问题#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 11:20:30 浏览: 167
这段代码有几个问题:
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;
}
```
相关问题
C语言程序填空:从键盘输入10个字符,将其全部输出到一个磁盘文件“data.dat"中保存起来#include<stdio.h> #include<conio.h> #include<stdlib.h> void main() { FILE *fp; int num; int i=0; if((fp=fopen("data.dat","w"))==NULL) { printf("打不开文件\n"); exit(0); } while(i<=9) { fprintf(fp,"%d",num); i++; } }
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main() {
FILE *fp;
char ch[10];
int i=0;
if((fp=fopen("data.dat","w"))==NULL) {
printf("打不开文件\n");
exit(0);
}
printf("请输入10个字符:\n");
while(i<=9) {
ch[i] = getch();
fprintf(fp,"%c",ch[i]);
i++;
}
fclose(fp);
printf("已将输入的字符保存到文件data.dat中!");
}
注意:程序中使用了 getch() 函数,需要包含 conio.h 头文件。另外,文件操作完成后需要关闭文件,使用 fclose() 函数。
C语言文件程序填空:从键盘输入10个字符,将其全部输出到一个磁盘文件“data.dat”中保存起来#include<stdio.h> #include<stdlib.h> void main() { FILE *fp; int num; int i=0; if((fp= )==NULL) { printf("打不开文件\n"); exit(0); } while(i<=9) { fprintf(fp,"%d",num); i++; } }
#include<stdio.h>
#include<stdlib.h>
void main() {
FILE *fp;
char ch[10]; // 用字符数组来存储输入的字符
int i=0;
if((fp=fopen("data.dat","w"))==NULL) { // 打开文件
printf("打不开文件\n");
exit(0);
}
while(i<=9) {
scanf("%c",&ch[i]); // 从键盘输入字符
fprintf(fp,"%c",ch[i]); // 将字符写入文件
i++;
}
fclose(fp); // 关闭文件
}
阅读全文