Пространства имён
Варианты
Действия

getline

Материал из cppreference.com
< cpp‎ | io

Синтаксис:

    istream& istream::getline( char* buffer, streamsize num );
    istream& istream::getline( char* buffer, streamsize num, char delim );

Функция getline() используется с потоками ввода. Версия функции без ограничителя delim ставит ограничитель на символ новой строки. Функция считывает символы в буфер, пока не произойдет хотя бы одно из событий:

  • считано num - 1 символов,
  • достигнут конец файла EOF,
  • достигнут символ delim. Этот символ не будет считан.

Если не удалось прочитать символ delim (обычно это символ новой строки), то поток ввода переходит в состояние ошибки.

Например, следующий код использует getline() для вывода первых 99 символов (один символ зарезервирован под символ конца строки '\0') или одну строку за раз из текстового файла, смотря что произойдет в первую очередь (считывание производится до конца файла или пока размер строки не превзойдет 99):

    ifstream fin("tmp.dat");
 
    int MAX_LENGTH = 100;
    char line[MAX_LENGTH];
 
    while( fin.getline(line, MAX_LENGTH) ) {
      cout << "read line: " << line << endl;
    }

Если вы хотите считать строки из файла в переменные типа string вместо массивов char, рассмотрите функцию string getline.

Некоторые пользователи компилятора от Microsoft могут обнаружить, что getline считывает один лишний символ. Решение этой проблемы вам следует искать в документации на Microsoft getline bug.

Смотрите также: gcount, get, string getline, ignore, read