Как читать файл построчно, используя «For loop» в c ?

#c

#c

Вопрос:

У меня есть опыт программирования на C #, но я новичок в c .

Как читать файл построчно, используя ниже «для цикла».

 for (int i = 0; i < count; i  )
{
}
  

Я нашел этот фрагмент кода, но не смог понять.

 for (string line = ""; getline(infile, line); )
    {
        //do something with the line
    }
  

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

1. getline(infile, line) читает строку за раз. При использовании в качестве условия «test» (либо в while цикле или for ) вы зацикливаете чтение строк до тех пор, пока состояние потока больше не будет хорошим (обычное изменение из-за конца файла).). Таким образом, цикл просто использует getline() в качестве условия тестирования и считывает строку каждый раз, когда проверяется предложение test.

Ответ №1:

Как вы знаете for , цикл выполняется до тех пор, пока не вернется средняя часть false , которая:

 getline(infile, line)
  

getline в этом случае возвращает false, если больше нечего читать, поэтому будет зацикливаться на каждой строке файла, предполагая infile , что открытый файл является fstream.

Ответ №2:

Стандартные потоки в C можно использовать в условиях, чтобы проверить, есть ли у них ошибка или они достигли конца файла.

И std::getline функция возвращает (ссылку на) поток, переданный в качестве первого аргумента.

Это можно комбинировать, поэтому std::getline вызов можно использовать в условии, как показано во втором фрагменте кода в вашем вопросе.