#include <stdio.h> int main() { int num; FILE* fp1; fopen_s(&fp1, "file.txt", "w"); for (int i = 0; i < 3; i++) { scanf_s("&d", &num); fprintf(fp1, "%d", num); } fclose(fp1); FILE* fp2; fopen_s(&fp2,"file.txt", "r"); while (!feof(fp2)) { fscanf_s(fp2,"%d",&num); printf("%d\n", num); } fclose(fp2); return 0; }为什么会出现乱码
时间: 2024-04-28 14:22:49 浏览: 81
在代码中,输出到文件的时候使用了 fprintf(fp1, "%d", num);,但是没有加上换行符,因此当从文件中读取数据时,会将数字连在一起输出,导致出现乱码。解决方法是在输出到文件时加上换行符,即使用 fprintf(fp1, "%d\n", num);。另外,在读取文件时,也应该加上feof判断,以避免读取到文件末尾时出现不必要的错误。
相关问题
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); // 关闭文件
}
阅读全文