logo

Função Getchar() em C

Nesta seção, aprenderemos a função getchar() na linguagem de programação C. A getchar() função é uma fora do padrão função cujo significado já está definido no stdin.h arquivo de cabeçalho para aceitar uma única entrada do usuário. Em outras palavras, é a função da biblioteca C que obtém um único caractere (unsigned char) do stdin. No entanto, a função getchar() é semelhante à função getc(), mas há uma pequena diferença entre as funções getchar() e getc() do Linguagem de programação C . Um getchar() lê um único caractere da entrada padrão, enquanto um getc() lê um único caractere de qualquer fluxo de entrada.

Função Getchar() em C

Sintaxe

 int getchar (void); 

Não possui nenhum parâmetro. No entanto, ele retorna os caracteres lidos como um caractere não assinado em um int e, se houver um erro em um arquivo, ele retorna o EOF no final do arquivo.

Agora escrevemos vários programas de função getchar() para aceitar caracteres únicos em C e imprimi-los usando a função putchar().

Leia um único caractere usando a função getchar()

Vamos considerar um programa para pegar um único usando a função getchar() em C.

Programa.c

 #include #include void main() { char c; printf ('
 Enter a character 
'); c = getchar(); // get a single character printf(' You have passed '); putchar(c); // print a single character using putchar getch(); } 

Saída

 Enter a character A You have passed A 

Como podemos ver no programa acima, ele recebe um único caractere em tempo de execução do usuário usando a função getchar(). Após obter o caractere, ele imprime a letra através da função putchar().

Leia n caracteres do usuário usando a função getchar()

Vamos considerar um programa para ler n caracteres usando a função getchar() em C.

Getchar.c

 #include #include #include int main() { char ch; printf (' Enter a character ( If we want to exit press #) 
'); while (ch != '#') /* accept the number till the user does not enter the # to exit from the loop. */ { ch = getchar(); printf (' 
 We have entered the character : '); putchar (ch); // print a single character printf ('
'); } return 0; } 

Saída

 Enter a character ( If we want to exit.. press #) A We have entered the character: A We have entered the character: B We have entered the character: B We have entered the character: C We have entered the character: C We have entered the character: 

Como podemos ver na saída acima, um loop while aceita continuamente um caractere do usuário até que o usuário não passe o caractere #. Aqui, a função getchar() pega um único caractere da entrada padrão e os atribui a uma variável ch. Enquanto a função putchar() imprime o caractere lido.

Leia um único caractere usando a função scanf()

Vamos considerar um programa para ler um caractere usando a função de biblioteca scanf() em C.

Programa.c

 #include #include int main() { char ch; printf ('
 Enter the character 
'); scanf ('%c', &ch); // get a single character, numeric or words printf( ' You have entered %c', ch); /* It print a single character or first letter of the words. */ return 0; } 

Saída

 Enter the character A You have entered A 

Como podemos ver, quando executamos o programa acima, ele utiliza um único caractere ou grupo de caracteres usando a função de biblioteca scanf() em vez da função getchar(). Mas há uma pequena diferença; uma função scanf() pode receber um único caractere ou um grupo de caracteres do usuário, enquanto a função getchar() pode aceitar apenas um único caractere.

Aqui executamos novamente o programa acima e, desta vez, mostra os resultados abaixo.

 Enter the character Apple You have entered A 

Leia os caracteres usando um loop do-while

Vamos considerar um programa para ler os caracteres usando as funções do while e getchar() em C.

Dowhile1.c

 #include #include int main() { int ch, i = 0; char str[150]; printf (' Enter the characters from the keyboard (Press Enter button to stop).
'); // use do while loop to define the condition do { ch = getchar(); // takes character, number, etc from the user str[i] = ch; // store the ch into str[i] i++; // increment loop by 1 } while (ch != '
'); // ch is not equal to '
' printf('Entered characters are %s ', str); return 0; } 

Saída

 Enter the characters from the keyboard (Press Enter button to stop). Well b47gvb come Entered characters are Well b47gvb come 

No programa acima, um loop do-while aceita continuamente os caracteres até que o usuário passe o DIGITAR botão para sair do loop.