2011-04-22 59 views
0

我有一个文件阅读器,它逐行读取一个文本文件(csv)...该方法工作正常..我使用字符串标记器为每个';'字符...我需要打破第一个while循环,当一行以字符'a'开头时....我该如何做到这一点?当检测字符'a'时打破一个while循环

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;'不会太冗长。 – 2011-04-22 21:07:03

+0

@DavidX完成,谢谢。 – 2011-04-22 21:09:43

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

我不知道这是否是你所要求的,如果你想出来的两个while循环这

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; 

}