私はこの単純な問題に困惑しています。私はC++でテキストファイルを読んでいます:
std::ifstream stream;
stream.open(filename);
if (!stream)
cout << "Invalid stream" << endl;
そして!stream
本当ですが、テキストファイルには何の問題もないようです。どのような状況stream
で間違っている可能性がありますか?
注: is_openはtrueを返します
私はこの単純な問題に困惑しています。私はC++でテキストファイルを読んでいます:
std::ifstream stream;
stream.open(filename);
if (!stream)
cout << "Invalid stream" << endl;
そして!stream
本当ですが、テキストファイルには何の問題もないようです。どのような状況stream
で間違っている可能性がありますか?
注: is_openはtrueを返します
十分な情報が提供されていません。それにもかかわらず、私の超能力は次のことを明らかにします。
filename
は相対パスであり、現在の作業ディレクトリはあなたが思っているものではありません。
if
節 内で、を介して印刷する前std::cout
に、これを追加します。
perror(filename.c_str());
このコードは私のために働きます:
#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);
}
ファイルにアクセスできないか、ファイルにアクセスするための十分な権限がない可能性があります。
もしかして、どこかで開いてる?ファイルへのパスが正しいかどうかを確認します。