텍스트 파일에서 특정 줄을 찾은 다음 해당 파일의 다음 3 줄을 읽는 C++ 프로그램을 만들려고합니다. 하지만이 프로그램은 같은 줄을 세 번 보여 주면서 끝을 맺고 있습니다.이 문제를 해결할 수있는 방법은 무엇일까요? 여기 내 코드 - 여기파일에서 다음 줄을 읽는 데 문제가 있습니다.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream file("file.txt");
string line;
int iffound=0;
string inp;
cin>>inp;
cout << "You have searched for " << inp << endl;
while (file.good())
{
getline(file,line);
if(line==inp){
iffound=1;
cout << "Contact Found!" << endl;
for(int i=0;i<=2;i++){
cout << line;
}
break;
}
}
file.close();
if(iffound!=1){
cout << "Contact Not Found" << endl;
}
return 0;
}
내 텍스트 파일 (file.txt를) 그럼 당신은 당신이 당신의 선두로부터 발견하는 경우 getline
다음과 같은 두 줄을 읽는되지 않습니다
123456
User1
Available
Active
789456
User2
Not Available
Active
음, 라인을 찾으면 같은 변수를 반복해서 인쇄하는 for 루프가 있습니다. 컴퓨터는 불행히도 원하는 작업 대신 항상 수행 할 작업을 수행합니다. –
[FYI]'while (file.good()) '를 사용하지 마십시오. 그것은 'while (file.eof())'과 같습니다 : http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong – NathanOliver
대신 무엇을 사용해야합니까? ** while (file.good()) **? –