2011-04-22 5 views
0

파일 판독기가 있는데, 줄 단위로 텍스트 파일 (csv)을 읽습니다 ... 메소드가 잘 작동합니다. 각 ';'에 대해 문자열 토크 나이저를 사용합니다. 문자 ... 나는 'while'이라는 문자로 시작하는 줄을 처음부터 끝내야한다. 어떻게 할 수 있는가 ??'a'문자를 감지하면 잠시 멈춤.

while(fgets(buffer, 1024, file) != NULL) 
    { 
     if (cnt>0) { 
      char *ch; 
      ch = strtok(buffer, ";"); 
      while (ch != NULL) { 
       printf("%s\n", ch); 
       ch = strtok(NULL, ";"); 
      } 
     } 

    } 

감사

막심

답변

3

이 시도 :

if(buffer[0] == 'a') break; 
+0

+1, if (buffer [0] == 'a') break;는 덜 장황합니다. –

+0

@DavidX 완료, 감사합니다. –

0
while(fgets(buffer, 1024, file) != NULL && buffer[0] != 'a') 
0

나는 확실하지 않다 이것은 당신이 루프 할 때 모두에서 원하는 경우에 당신이 무엇을 요구하는 경우 이

while(fgets(buffer, 1024, file) != NULL) 
{ 
bool okToExit = false; 
    if (cnt>0) { 
     char *ch; 
     ch = strtok(buffer, ";"); 
     while (ch != NULL) { 
      printf("%s\n", ch); 
      ch = strtok(NULL, ";"); 
      if(buffer[0] == 'a'){ 
       okToExit = true; 
       break; 
      } 
     } 
    } 
if(okToExit) break; 

}