我在要把文件中的汉字读出来,再输出为什么都是乱码
还有我将字符串写进文件,写出来的也是乱码
1条回答 默认 最新
- a5156520 2022-06-12 09:53关注
可能是读取和写入文件的函数方式使用的问题,如果是读取和写入文本内容可以使用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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用