其实问题源头就是你要读的那个文件的编码
比如:
FILE *fp1, *fp2;
fp1 = fopen("student.txt", "r");
fp2 = fopen("csStudent.txt", "w");
while (fgets(buf, MAXSIZE, fp1) != NULL)
{
fputs(buf, fp2);
}
你这样去读出并直接写入另一个文件,这个新文件打开是没有问题的,中文还是中文,但如果是打印:
while (fgets(buf, MAXSIZE, fp1) != NULL)
{
printf("%s", buf); // 打印出buf可能会乱码
}
这时打印出buf如果乱码就大概率是txt文件的编码问题了
解决方法:
另存为,改一下编码就行了