关于ifstream 的一个问题

dengjun00000 2006-07-27 12:39:03
int main()
{
string name, id;
int amount;

ifstream infile;
infile.open("member.txt");
……
infile.close();

infile.open("book.txt");
infile>>name>>id>>amount;
//在这部分的操作中发现,无法把文件中的值读到变量中,不知道是不是因为ifstream的使用有误,请高手指点啊
……
infile.close();
}
...全文
497 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
genius_hb 2006-07-28
  • 打赏
  • 举报
回复
在infile.open("book.txt");
infile>>name>>id>>amount;
之前应该加上:
infile.clear();
用于清除之前的状态标志。如果之前一个文件读到文件末尾,会置标志位:fail和eof。
而重新打开文件的时候标志不会清除,这种情况下,对流的操作都会失败。
zhaowanru19 2006-07-28
  • 打赏
  • 举报
回复
读入的变量是不是都在第二个文件中?如果不是的话应该不可以!我人为应该改成
infile.open("member.txt");
……
infile>>...
infile.close();

infile.open("book.txt");
infile>>....
divid3000 2006-07-28
  • 打赏
  • 举报
回复
可以呀,我在vs2003环境下测试过了,没问题的。
OpenHero 2006-07-27
  • 打赏
  • 举报
回复
中文不能这样处理,看是什么格式存放的,有编码规则
dengjun00000 2006-07-27
  • 打赏
  • 举报
回复
楼上的大哥,你的程序,我也跑了一遍,第二个文件的内容的确是没有办法读进来啊
你可以吗?奇怪了啊
dengjun00000 2006-07-27
  • 打赏
  • 举报
回复
呵呵,我找到自己的问题了
想给bool型变量赋值,在文件里写成true 和false了,导致输入流出错,其余内容无法读进去,改成0和1 就可以了
还是要多谢各位高手这么仔细的给我解释:)
divid3000 2006-07-27
  • 打赏
  • 举报
回复
可以呀,我测试了可以的
int main()
{
ifstream infile;
string a,b;
infile.open("G:\\程序\\C++\\Problem9.8\\one.txt");
infile>>a;
cout<<a<<endl;
infile.close();
infile.open("G:\\程序\\C++\\Problem9.8\\two.txt");
infile>>a>>b;
cout<<a<<endl;
cout<<b<<endl;
infile.close();
return 0;
}
dengjun00000 2006-07-27
  • 打赏
  • 举报
回复
读入的文件不是中文的。
我想知道,同一个ifstream变量infile可不可以在一个程序中关联两个不同的文件,因为后面一个文件的内容好像读不进来啊
chenhu_doc 2006-07-27
  • 打赏
  • 举报
回复
在实践中,iostream支持两种预定义的字符类型:char和wchar_t。目前我们所描述的iostream类(以及我们在本章余下部分要关注的)读写的是char型的流。与此互补的是另外一组支持wchar_t型的iostream对象和类。每个类与类对象都加了前缀”w”,以便与相应的char型区分开。因此,wchar_t标准输入被命名为wcin、标准输出为wcout,以及标准错误wcerr。然而,char和wchar_t型的stream类和类对象所需要的头文件是相同的。
wchar_t输入和输出类是wistream、wostream、和wiostream。文件输入和输出类是wifstream、wofstream、和wfstream。iostream字符串输入输出类是wistringstream、wostringstream、和wstringstream。


相应的改变读入方式就可以了!
chenhu_doc 2006-07-27
  • 打赏
  • 举报
回复
中文要使用宽字节 wchar_t

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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