-2

ファイル内のテキストを正常に読み取ることができましたが、空のスペースに到達するまでしか読み取りません。たとえば、「こんにちは、これはテストです」というテキスト、cout は「こんにちは」です。

「、」を削除しても違いはありませんでした。

inFil.ignore(1000,'\n');次のコードに " " のようなものを追加する必要があると思います。

inFil>>text;
inFil.ignore(1000,'\n');
cout<<"The file cointains the following: "<<text<<endl;

getline(inFil, variabel);基本的に機能しているプログラムをやり直す必要があるため、変更しないことをお勧めします。

助けてくれてありがとう、これは非常に小さく、簡単に修正できる問題のようですが、解決策が見つからないようです。

4

2 に答える 2

4
std::ifstream file("file.txt");
if(!file) throw std::exception("Could not open file.txt for reading!");
std::string line;
//read until the first \n is found, essentially reading line by line unti file ends
while(std::getline(file, line))
{
  //do something line by line
  std::cout << "Line : " << line << "\n";
}

これにより、ファイルを読み取ることができます。コードが完全ではないため、何を達成しようとしているのかわかりませんが、上記のコードは一般的に C++ でファイルを読み取るために使用されます。

于 2011-10-15T13:11:07.460 に答える
2

フォーマットされた抽出を使用して、単一の文字列を一度抽出しました。これは、単一の単語を意味します。

ファイルの内容全体を含む文字列が必要な場合:

std::fstream fs("/path/to/file");
std::string all_of_the_file(
   (std::istreambuf_iterator<char>(filestream)),
   std::istreambuf_iterator<char>()
);
于 2011-10-15T13:26:09.530 に答える