2013-02-25 1 views
1

코드 검토 베타에이 내용이 게시되었지만 거기에는 훨씬 적은 활동이 있음을 알 수있었습니다.getline()을 통해 .dat에서 파일 가져 오기 w/C++

다음 코드가 있는데 제대로 작동합니다. 함수는 파일에서 입력을 가져 와서 표시합니다 (잡혀 있는지 확인하기 위해). 내 임무는 특정 단어 (문자열) "abc"가 입력 파일에서 발견되는 횟수를 세는 프로그램을 작성하는 것입니다.

입력을 문자열 또는 배열/벡터로 저장하고 각 줄을 개별적으로 저장하는 것이 더 좋습니까? a [1], [2] 요법? 누군가는 입력 데이터를 필터링하는 방법을 배우기 위해 사용할 수있는 리소스를 알려줄 수도 있습니다.

감사합니다.

+4

어디에서 모두 '.eof()'루프 상태로 생각하는 것이 좋은 생각입니까? [그것은 아니야.] (0120)를 참조하십시오. – us2012

+2

@ us2012 내 교과서에서 가르쳐 ... –

+0

클릭하십시오. 당신이 그것을해서는 안되는 이유를 알아 내 의견에 링크 :) – us2012

답변

0

파일을 메모리에 많이 읽는 것이 한 번에 한 글자 또는 텍스트 줄을 읽는 것보다 항상 효율적입니다. 디스크 드라이브는 섹터로 회전하고 이전하는 데 많은 시간을 필요로합니다. 그러나 파일에서 읽는 횟수를 최소화 할 수 있으면 프로그램이 더 빨리 실행됩니다.

메모리가 빠르게 검색됩니다.

내 추천은 전체 파일을 읽거나 메모리에 최대한 많이 넣은 다음 메모리에서 "단어"를 검색하는 것입니다. 단어는 영어로 하이픈 (-)과 작은 따옴표 ("")를 사용할 수 있음을 기억하십시오. 단어 인식이 한 줄에 나뉘거나 약어 (마침표 포함)를 포함하면 단어 인식이 어려워 질 수 있습니다.

행운을 빈다.