Sintaxe:
istream& istream::getline( char* buffer, streamsize num ); istream& istream::getline( char* buffer, streamsize num, char delim );
A função getline() é usada com streams de entrada. A versão sem um caracter delim define o delimitador como sendo um caracter newline ('\n'). getline() lê e guarda caracteres em buffer até:
Se o caracter delim (newline normalmente) não é lido, o stream de entrada é colocado num ”failure state”.
Por exemplo, o código seguinte usa a função getline para mostrar os primeiros 99 caracteres (um caracter é reservado para NULL) ou uma linha de cada vez de um ficheiro de texto -- o que aparecer primeiro -- (até EOF ou uma linha de comprimento superior a 99 caracteres ser encontrada):
ifstream fin("tmp.dat"); int MAX_LENGTH = 100; char line[MAX_LENGTH]; while( fin.getline(line, MAX_LENGTH) ) { cout << "read line: " << line << endl; }
Se preferir ler linhas de um ficheiro e guardá-las em strings em vez de arrays de caracteres, considere usar a função string getline.
Os que usam um compilador Microsoft podem verificar que getline lê um caracter extra, e devem consultar a documentação sobre Microsoft getline bug.
Tópicos Relacionados: gcount, get, string getline, ignore, read