"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como `cin` lida com entradas em C++ e por que `getline()` é preferido para leitura de linhas inteiras?

Como `cin` lida com entradas em C++ e por que `getline()` é preferido para leitura de linhas inteiras?

Publicado em 13/11/2024
Navegar:712

How does `cin` handle input in C   and why is `getline()` preferred for reading entire lines?

C Comportamento do fluxo de entrada com "cin"

Ao ler a entrada usando o fluxo "cin" em C , é importante entender como isso interage com vários tipos de dados. Por padrão, "cin" lê uma palavra por vez, o que pode levar a um comportamento inesperado ao lidar com matrizes de caracteres ou strings.

No exemplo de código fornecido, o método "input()" em "String "a classe usa "cin >> str;" para ler a string de entrada. No entanto, esta instrução captura apenas uma única palavra, ignorando quaisquer palavras subsequentes na entrada. Como resultado, quando a entrada contém várias palavras, como "steve hawking", apenas a primeira palavra, "steve", é armazenada na matriz "str".

Solução: usando getline( ) para ler linhas completas

Para ler uma linha completa de entrada em uma matriz de caracteres, a função "getline()" pode ser usada em vez de "cin >>". Aqui está o método de entrada atualizado usando "getline()":

void input()
{
    cout 

"getline()" leva dois argumentos: um ponteiro para o array de destino e o tamanho do array. Ele lê a entrada até que um caractere de nova linha seja encontrado, capturando efetivamente toda a linha de entrada. complicado e sujeito a erros. A Biblioteca Padrão C fornece a classe "std::string", que oferece uma abordagem mais robusta e de tipo seguro para manipulação de strings. Em vez de usar matrizes de caracteres, o código poderia ser reescrito como:

#include #incluir classe String { público: std::string string; entrada nula() { cout

Finalmente, o uso de arquivos de cabeçalho como "iostream.h" e "conio.h" está desatualizado. O desenvolvimento C moderno deve usar arquivos de cabeçalho como "iostream" e "conio", respectivamente.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3