标题:文件保存问题
只看楼主
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
结帖率:100%
 问题点数:0 回复次数:2 
文件保存问题
我用两种方法将从键盘输入的一串字符保存在两个不同的文件中,可在文件中却显示不一样,用write函数字进文件
中出现乱码,请问这是什么原因?
代码如下:

#include <fstream.h>
#include <stdlib.h>
void main()
{
fstream fin;
char filename1[20],filename2[20];
char str[100];
cout<<"请输入文件名:";
cin>>filename1;
cout<<"请输入要保存的信息:";
cin>>str;
fin.open(filename1,ios::app);
if(!fin)
{
cout<<"Can not open file!"<<endl;
exit(0);
}
fin<<str<<endl;
fin.close();
cout<<"请输入文件名:";
cin>>filename2;
fin.open(filename2,ios::app);
if(!fin)
{
cout<<"Can not open file!"<<endl;
exit(0);
}
fin.write((char *)str,sizeof(str));
fin.close();
}



搜索更多相关主题的帖子: 文件 fin cout 保存 
2006-07-05 09:04
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
得分:0 
fin&lt;&lt;str&lt;&lt;endl;对str的输出是遇中止符就中止,而fin.write((char *)str,sizeof(str));则根据你输入的缓冲区大小来进行输出,程序中你如果把fin.write改成fin.write((char *)str,strlen(str));就不会输出多余的乱码了

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-07-05 09:38
guang
Rank: 4
来 自:广东深圳
等 级:贵宾
威 望:13
帖 子:1414
专家分:285
注 册:2006-4-3
得分:0 
哦,是这样的呀,试下先,谢谢了哦!

不相信未作牺牲竟先可拥有,只相信靠双手找到我的欲求!!
我的博客:http://liao5930.blog.
2006-07-05 10:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-76629-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.534315 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved