Translations of this page?:

getline

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é:

  • num - 1 caracteres serem lidos,
  • um EOF ser encontrado,
  • ou, até o caracter delim ser lido. O caracter delim não é guardado em buffer.

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

 
• • • SitemapRecent changesRSScc