这是一个读取写入txt文件的一个代码,我读取汉字之后fprintf到txt文件里是正常的,但是用printf输出时就变成了乱码。
求大神帮助!!!!
以下是代码和运行后样子。
07/23/1595513451_164747.png)
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void main()
{
FILE* fp;
fp=fopen("user.txt","r+");
char name[50];
int num;
fscanf(fp,"%s%d",name,&num);
printf("%s %d",name,num);
fprintf(fp,"\n%s %d",name,num);
fclose(fp);
}
我在 gcc 下编译了你贴的代码,运行后没任何问题。你出现的问题可能是操作系统的事情。你用 cmd 进入命令行后,用 CD 进到你编译好的 exe 的文件夹中,去运行你的程序,应该能正常执行。
你的txt文件默认存储是以ANSI格式,请手动转码储存
或者在代码里进行判断,然后转码,或者写一个字符判断的工具类
试试打开文件模式rb?