좋아요, 그래서 이것은 텍스트 파일에서 발생하는 기괴한 크로스 플랫폼 문제입니다. 나는 매우 간단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가 발생하면 읽고있는 줄을 뱉어 프로그램을 말해봐. 다음은 내가 읽은 텍스트 파일입니다.
HEADER
BEGIN
X 2
Y 2
Z 1
END
Windows는 한 번 만난 이후 BEGIN을 한 번 뱉어냅니다. 리눅스는 아무것도 내뱉지 않는다. 내가 여기서 누락 된 근본적인 것이 있습니까? 파일이 윈도우 라인 엔딩이있는 경우
LF (Unix) 대신 CRLF (Windows) 줄 끝을 사용하고 있습니까? ? CRLF를 사용하는 경우 CR을 라인의 일부로 읽는 것일 수 있습니다. –