これは私がテキストファイルで経験している奇妙なクロスプラットフォームのものです。私は非常に単純にテキストファイルを読み込むプログラムWindowsとLinuxのテキストファイルの処理に関する問題
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while (myfile.good())
{
getline (myfile,line);
if (line == "BEGIN")
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
を持っていると言うので、これはテキストファイルを読み込み、それはBEGIN遭遇した場合、それは読んでいるラインを出してくれる。ここで私が読んでいるテキストファイルです。それは1時間に遭遇しているので
HEADER
BEGIN
X 2
Y 2
Z 1
END
Windowsが成功し、1時間をBEGIN出してくれる。 Linuxは何も吐き出さない。私がここで欠けている根本的なものがありますか?
LF(Unix)の代わりにCRLF(Windows)行の末尾を使用していますか?(Windowsの行末を使用している場合、プログラムはキャリッジリターンを処理する必要があります。 ? CRLFを使用している場合は、おそらくその行の一部としてCRを読み込んでいる可能性があります。 –