| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:文件保存问题
只看楼主 加入收藏
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
快速回复:文件保存问题
数据加载中...
 
   



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

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