无法在C ++中读取文本文件

时间:2012-11-01 15:25:15

标签: c++

我被这个简单的问题困扰了。我正在用C ++阅读文本文件:

std::ifstream stream; 
stream.open(filename); 
if (!stream) 
   cout << "Invalid stream" << endl; 

并且!stream是真的,但文本文件似乎没有任何问题。在什么情况下stream可能是假的?

注意: is_open返回true

3 个答案:

答案 0 :(得分:2)

您没有提供足够的信息。然而,我的精神力量揭示了:

filename是一个相对路径,您当前的工作目录不是您想象的那样。

if子句中,在通过std::cout打印之前,请添加以下内容:

perror(filename.c_str());

答案 1 :(得分:1)

您的文件可能无法访问,或者您可能没有足够的权限来访问该文件。

也许它在其他地方开放?检查文件的路径是否正确。

答案 2 :(得分:1)

此代码适用于我:

#include<iostream>
#include<string>
#include<fstream>

using namespace std;



int main()

{
    std::ifstream infilestream;
    std::string line;

    infilestream.open("test.txt");
    while(infilestream)
    {
      std::getline(infilestream, line);
      cout<<line<<"\n";
    }
    infilestream.close();

    return(0);

}