为什么fgets 按行读取文本文件 读出了乱码?

wl2003j3 2008-05-22 11:09:02
我想实现的功能是将字符串按行写入文件,重复字符串只存一次.文件中一个字符串占一行.
就像这样的:

1105
1103
1106

可是写进去了一堆乱码,为什么啊?

代码如下:
char codeInFile[50];
CString code;
while(fgets(codeInFile,50,fp)!= NULL)//一次读取一行
{
code = codeInFile;
code.TrimRight();
if(scode == code)
break;
}
if(scode != code)
{
if(fp)
fprintf(fp,"%s \n",scode);
}
}
fclose(fp);
MessageBox("导出成功!");
...全文
889 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaynaviee 2012-03-19
  • 打赏
  • 举报
回复
FILE *fp = fopen(InfoPath,"r");
最好是"r"
wl2003j3 2008-05-22
  • 打赏
  • 举报
回复
打开文件的代码:
FILE *fp = fopen(InfoPath,"w");

而且fgets(codeInFile,20,fp)的返回值是NULL,

codeInFile得到的也是乱码

.txt文件中存储着一行字符:
1108
长尾巴的悟空 2008-05-22
  • 打赏
  • 举报
回复
看你是用二进制读取,还是用文本方式.
leelittlelong 2008-05-22
  • 打赏
  • 举报
回复
打开文件的代码贴出来。
wl2003j3 2008-05-22
  • 打赏
  • 举报
回复
fgets(codeInFile,50,fp)
从文本文件里读出来的coeInFile就是一堆乱码:"屯屯屯屯屯屯屯屯屯屯屯屯屯屯..."
leelittlelong 2008-05-22
  • 打赏
  • 举报
回复
scode == code

这是在比较指针。

应该用strcmp或者strncmp

msdn查一下。
leelittlelong 2008-05-22
  • 打赏
  • 举报
回复
注意打开文件的模式

FILE *fp = fopen(InfoPath,"rw");
leelittlelong 2008-05-22
  • 打赏
  • 举报
回复
怎么
FILE *fp = fopen(InfoPath,"rw");
菜牛 2008-05-22
  • 打赏
  • 举报
回复
说实话,没看出来你的scode哪来的。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧