无法初始化ifstream“读取字符串字符时出错”

时间:2014-04-22 15:34:27

标签: c++ c++11 ifstream

以下给我一个奇怪的信息: 消息显示在ifstream文本中(当悬停时) path是一个完整的Windows样式路径,例如:" C:\ t.txt"

void checkInput(string path)
{
ifstream text(path);
    // "...<Error reading characters of string.>..."
if (text.is_open())
{
    if (text.good())
               ...

完整的信息:

{_Filebuffer={_Set_eback=0xcccccccc <Error reading characters of string>.
_Set_egptr=0xcccccccc <Error reading characters of string>. ...} }
std::basic_ifstream<char,std::char_traits<char>> "

我尝试使用char *而不是string和string.c_str。 没有好处。

谢谢答案, 似乎代码在运行,即使我仍然收到此消息。 以前我的代码中有另一个错误。

我想删除它,但知道此消息不会阻止代码运行可能会有所帮助。

1 个答案:

答案 0 :(得分:1)

  1. 如果您使用路径,就像您写的那样&#34; C:\ t.txt&#34; - 这不对。使用必须使用双反斜杠,例如&#34; c:\\ t.txt&#34;
  2. 如果使用绝对路径,则检查文件存在此路径。
  3. 如果您使用相对路径,则取决于您运行代码的位置:从VS(调试模式)或只运行可执行文件。