Enunciado

Escreva um programa para mostrar que o getline e as funções-membro istream de get terminam a string de entrada com um caractere nulo de finalização de string. Além disso, mostre que get deixa o caractere delimitador no stream de entrada, enquanto getline extrai o caractere delimitador e o descarta. O que acontece com os caracteres não lidos no stream?

Passo 1

Beleza pessoal, espero que estejam dispostos a estudar hoje.

Hoje iremos colocar a mão na massa para escrever esse código. Aqui irei apenas mostrar uma forma de resolver o problema, mas existem várias e várias e você pode, a partir do que ver aqui, encontrar a sua própria

Hoje iremos então criar um programa que demonstra as funções istream::getline() e istream::get() de três argumentos. Para isso iremos

  • cada função vai ler até o caractere delimitador 'c', e existe uma função get() após a chamada para capturar o último caractere no fluxo (para ver o que acontece com o caractere delimitador).
  • provaremos que o caractere final para as strings lidas por getline( ) ou get( ) é o caractere nulo de terminação de string comparando o último caractere com o caractere nulo.

Passo 2

Testando o nosso código temos que

Passo 3

como podemos ver, o delimitador da função getline( ) é extraído e descartado, enquanto o delimitador da função get( ) permanece na stream.

Além disso, pelos valores booleanos emitidos, podemos garantir que os últimos caracteres das strings lidas são caracteres nulos.

Espero que tenham aprendido mais um pouco hoje, fiquem atentos aos detalhes e um abraço a todos!!!

Resposta

Ei, a resposta está no passo a passo :)