-2

私はこの単純な問題に困惑しています。私はC++でテキストファイルを読んでいます:

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

そして!stream本当ですが、テキストファイルには何の問題もないようです。どのような状況streamで間違っている可能性がありますか?

注: is_openはtrueを返します

4

3 に答える 3

3

十分な情報が提供されていません。それにもかかわらず、私の超能力は次のことを明らかにします。

filenameは相対パスであり、現在の作業ディレクトリはあなたが思っているものではありません。

if節 内で、を介して印刷する前std::coutに、これを追加します。

perror(filename.c_str());
于 2012-11-01T15:32:02.283 に答える
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);

}
于 2012-11-01T16:41:55.773 に答える
1

ファイルにアクセスできないか、ファイルにアクセスするための十分な権限がない可能性があります。

もしかして、どこかで開いてる?ファイルへのパスが正しいかどうかを確認します。

于 2012-11-01T15:27:59.453 に答える