내가 파일을 구문 분석하는 몇 가지 문제가 있어요표준 : : fstream 오류
내가 구문 분석 할 파일의 마지막 두 행은 다음과 같습니다
F 814/866/896/1100 1035/
: 989 817/965/898[아무것도, \ n을에서 효과]
이 내가 파일을 읽는 방법입니다
그러나 아무 것도 포함하지 않은 파일의 마지막 줄에는 몇 가지 문제가 있습니다. 파일의 마지막 줄 앞에 inFile.ignore(1000, '\n');
이 발생하고 std::fstream::eof()
이 검색 될 것으로 예상되지만 어떤 이유인지는 알 수 없습니다. 그리고 분명히 sCommand
은 줄에 아무 것도없는 경우에도 이전 줄과 동일한 명령이되어 문제를 일으킬 수 있습니다.
확인할 방법이 있습니까? 그리고 그렇다면, 어떻게?
가능한 복제본 : http://stackoverflow.com/questions/21647/reading-from-text-file-until-eof-repeats-last-line 요컨대, eof()가 true 일 때 true를 반환하는 것은 아닙니다. 스트림에서 읽을 내용이 없습니다. 실제로 마지막을 읽으 려 할 때만 true를 반환합니다. 즉 * 먼저 * 읽어야하고 성공했는지 확인한 다음 읽은 값을 가지고 작업을 수행해야합니다. 은'while' 상태에서 읽기 작업을 넣어 :'동안 (INFILE >> sCommand) {...' – jrok
읽기이를 http://www.parashift.com/c++-faq-lite/input-output.html# faq-15.4 및 http://www.parashift.com/c++-faq-lite/input-output.html#faq-15.5 – jrok