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.
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