2011-09-08 7 views
0

(텍스트) 파일에서 키워드 목록을 읽고 그 파일을 C의 CString 배열에 추가하고 싶습니다. 문제는 필자가 파일을 한 줄씩 읽고 있다는 것입니다. 파일에는 모든 행에 한 단어가 들어 있습니다. 배열을 성공적으로 채울 수 있지만 다른 문자열에서 이러한 키워드를 찾으려고하면 키워드가 \ n 인 것으로 추측되므로 false를 반환합니다.CR 종료 키워드 텍스트 파일 읽기

파일을 읽을 수있는 또 다른 방법은 텍스트 파일을 쉼표로 구분 된 파일로 만들고 한 줄을 읽고 토큰 화하는 것일 수 있습니다. 그러나 키워드 목록이 확장됨에 따라 그 크기가 매우 커질 수있는 행을 읽는 방법을 알지 못합니다. 문제가 문자열 끝에 불량 줄 바꿈을 가질 수있는 경우

사드 레흐만은

+0

파일을 어떻게 읽습니까? 몇 가지 코드를 제공하십시오 .. – duedl0r

답변

0

, 당신은 사용할 수 있습니다

size_t len = strlen (mystring); 
if (len > 0) 
    if (mystring[len-1] == '\n') 
     mystring[--len] = '\0'; 

mystring에이 작업을 수행하면이 아니라 전에 읽은 후 당신이 그것을 사용합니다.

단순히 마지막 문자가 줄 바꿈인지 검사하고, 줄 바꿈 문자이면 줄 바꿈 문자로 바꿉니다.

첫 번째 확인은 mystring[-1]이 두려운 정의되지 않은 동작을 호출하는 빈 문자열에서이 작업을 시도하지 않도록하는 것입니다.

+0

'len'을 다시 사용하려면''\ n ''을 널 종결 자로 대체 할 때 그것을 업데이트하는 것이 좋습니다 : 예 :'mystring [- len] = '\ 0'; '. – pmg

+0

좋은 지적은 @pmg입니다. 보통 그렇게하지는 않지만, (노력과 소스 코드 모두) 낭비가 거의 없으므로, 다른 사람이 할 수있는 기회에 대해 제안을 채택했습니다. – paxdiablo

+0

고마워요! 매력처럼 작동했습니다. 내가 직접 해보 았지만 작동하지 않았습니다. 비록 LF와 CR은 _ \ n_가 아닌 다른 것으로 표현되었지만 코드는 완전히 작동했습니다. –