그래서 끝까지 도달 할 때까지 input_file
이라는 파일에서 읽으려고합니다. while (!input_file.eof())
을 사용해 보았지만 무한 루프가 발생했습니다. 포럼에서 둘러보고 while (getline(input_file, line))
을 사용해 보았지만 빈 줄만 반환합니다. 나는 다른 질문처럼 getline()과 >> 연산자를 사용하지 않았다. 이 문제를 어떻게 해결합니까? 내 코드는 다음과 같습니다.빈 줄 또는 무한 루프를 반환하는 EOF
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// Main program
void CalfFlac(ifstream& input_file) {
string text;
string line;
while (getline(input_file, line)) {
text += line;
}
cout << text << endl;
}
int main() {
ifstream input_file;
input_file.open("calfflac.in");
CalfFlac(input_file);
}
input_file에는 한 줄의 Confucius say: Madam, I'm Adam.
뒤에 캐리지 리턴이 있습니다.
도움 주셔서 감사합니다.
추신 : 해결책이 간단하다면 더 좋을 것 같습니다. 꽤 간단한 문제인 것처럼 보입니다.
난 당신이 설명하는 문제를 재현 할 수 있습니다. 'crlf','lf','cr'와 같은 다양한 줄 끝 조합으로 시도해 보았습니다. 이 플랫폼을 테스트중인 플랫폼은 무엇입니까? – greatwolf
파일이 성공적으로 열 었는지 확인 했습니까? 'assert (input_file);' – greatwolf
릴리스 모드에서 쉽게 실패 할 수 있기 때문에 "assert"를 사용하여 파일을 검사하지 않는 것이 가장 좋습니다! –