прерывать цикл while при обнаружении символа ‘a’

#c

#c

Вопрос:

У меня есть программа чтения файлов, она читает текстовый файл (csv) построчно…метод работает нормально..Я использую строковый маркер для каждого символа ‘;’… Мне нужно прервать первый цикл while, когда строка начинается с символа ‘a’…. Как я могу это сделать??

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

    }
  

Спасибо

Maxime

Ответ №1:

Попробуйте это:

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

Комментарии:

1. 1, хотя if(buffer[0] == 'a') break; было бы менее подробным.

Ответ №2:

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

Ответ №3:

Я не уверен, что это то, о чем вы спрашиваете, хотите ли вы из обоих циклов while сделать это

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

}