Windowsでfstreamで開いたファイルの読み込みに問題があります。ifstreamで開かれたファイルの内容を読む
ファイルはsucessfully開かれ、それにはエラーがなく、しかしgetlineのとのサイクルには、コンテンツを取得していません。
このサンプルは完璧に実行し、Linuxのすべてのものには、ファイル全体の内容に
std::copy(std::istream_iterator<std::string>(file), std::istream_iterator<std::string>(),
std::ostream_iterator<std::string>(std::cerr, "\n"));
を出力のほかには、完璧な、同じファイル、同じコードで、サイクル内のgetlineはすべて読み込みます。
編集のVisual Studio:私は、私はLinux上でのgetline
std::cout << file.rdbuf();
でサイクルする前に、コードのこの小さなラインを持っていることを言及するのを忘れてしまった
は、この行は、単にファイルの内容を印刷します、それだけではなく、印刷することができないウィンドウには、ファイルにアクセスできなくなりますstd::getline
を行い、Windows上
while(std::getline)
前を呼んでいましたあなたはゼロになる? – NathanOliver
@NathanOliver yep – tty6
ファイルはテキストファイルですか?最初の文字は0x1Aですか? Windowsでは、ファイルの終わりを示す特殊文字またはバイト値があります。あなたのファイルに冒頭に*が含まれていて、ファイルをバイナリ*として開かないと、Windows OSはファイルの終わりの状態を返します。 –