我在要把文件中的汉字读出来,再输出为什么都是乱码
还有我将字符串写进文件,写出来的也是乱码
可能是读取和写入文件的函数方式使用的问题,如果是读取和写入文本内容可以使用fscanf读取文件,使用fprintf写入文件,一个实现如下:
参考资料:
C 库函数 – fscanf() | 菜鸟教程
C 库函数 – fprintf() | 菜鸟教程
C 库函数 – fopen() | 菜鸟教程
#include <iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int main()
{
FILE *fp;
char str[100]; //存储输字符串
if((fp=fopen("f:\\read.txt","r"))==NULL) //以读模式打开文件
{
cout<<"打开文件失败!\n";
exit(1);
}
char ch;
while(feof(fp)==0)
{
fscanf(fp,"%c",&ch); //读取一个字符然后打印
cout<<ch;
}
fclose(fp);
cout<<endl;
if((fp=fopen("f:\\read.txt","a+"))==NULL) //以追加模式打开文件
{
cout<<"打开文件失败!\n";
exit(1);
}
cout<<"请输入一个字符串:"<<endl;
cin>>str; //获取输入字符串
fprintf(fp,"%s",str); //把这个字符串追加到文件结尾
fclose(fp);
system("pause");
return 0;
}