【问题标题】:Incorrect data input with fstream使用 fstream 输入不正确的数据
【发布时间】:2010-06-22 16:59:29
【问题描述】:

我尝试使用 fstream 从文本文件中读取数据,但数据错误。

ifstream fin ("C:\\Users\\rEgonicS\\Documents\\test.in");
int number;
fin >> number;
cout << number;

test.in 就是12
cout 读作4273190
有人可以解释为什么会这样以及如何解决吗?

【问题讨论】:

  • test.in 的字面意思是“12”加引号还是只有 12,它是如何编码的?如果你不确定,文件大小是多少?你用什么程序保存的?
  • 只有12个。我保存在记事本中,文件大小为4字节,磁盘4KB。

标签: c++ input fstream


【解决方案1】:

最可能的原因是文件打开失败。打开后检查状态,阅读后也可以;对于一个简单的测试,请执行以下操作:

ifstream fin ("C:\\Users\\rEgonicS\\Documents\\test.in");
if (!fin) cout << "File open failed\n";
int number;
fin >> number;
if (!fin) cout << "File read failed\n";
cout << number;

这可能会为正在发生的事情提供进一步的线索。

【讨论】:

  • 我运行了上面的程序,“文件打开失败”和“文件读取失败”都出现了。
  • 这意味着它无法打开(它会因为它没有打开而无法读取)。路径是否正确?文件可读吗?
猜你喜欢
  • 1970-01-01
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 1970-01-01
相关资源
最近更新 更多