2010-04-14 2 views
1

"$$$$"에 의해 분리 된 정보를 저장하는 파일에서 정보를 읽는 C++ 프로그램이 있습니다. 파일이 보이는 방법의 예는 다음과 같습니다C++은 파일 끝을 감지합니다

abc
bcd
$$$$
def
$$$$
qwe
gfh
$$$$

가 어떻게이 EOF() 함수를 사용하지 않고 파일이 종료 감지 할 수 있습니까? 내가 이런 식으로 설정되어

,

getline(sin,temp)
if (temp=="$$$$")
{
}

내가 다른 데이터 세트를 보장하기 위해 다음 라인을 확인할 수있는 방법을 네 달러의 마지막 세트를 읽은 후 시작되지 않으며, 그 파일이 종료 되었습니까? 파일이 실제로 종료 된 경우 부울 플래그를 사용하여 while 루프를 종료 할 계획입니다.

+2

왜 eof()를 사용할 수 없습니까? –

답변

7
while (getline(sin, temp)) 
{ 
    // use temp. 
} 

파일의 끝에 도달하면 루프가 종료됩니다.

2

나는 왜 eof()을 사용할 수 없는지 잘 모르겠지만 파일 크기를 먼저 얻은 다음 그 많은 바이트 만 읽을 수 있습니다.

+0

왜냐하면 내 현재 프로그램의 아키텍처 때문입니다. 나는 그것을 더 좋게 만들기 위해 다시 할 수 있음을 알고 있지만, 지금 당장은 시간이 없어서, 내가 가진 것과 함께 일해야합니다. – xbonez

+0

@xbonez : eof()를 사용하여 프로그램을 다시 설계해야하는 이유를 알 수 없습니다 ... –

+0

@xbonez'eof()'를 사용하지 못하게하는 건축 제약 조건을 정확히 말씀해 주시겠습니까? – wilhelmtell

관련 문제