Como ler linhas de stdin em programação C

Como ler linhas de stdin em programação C
O stdin é a forma curta da “entrada padrão”, na programação de C, o termo “stdin” é usado para as entradas que são retiradas do teclado pelo usuário ou de um arquivo. O "stdin" também é conhecido como ponteiro porque os desenvolvedores acessam os dados dos usuários ou arquivos e podem executar uma ação neles.

Neste artigo, usaremos as funções internas da programação C que podem ser usadas para ler a entrada pelo stdin.

Como ler uma linha de Stdin em programação C

Existem diferentes funções internas usadas na programação C para ler as entradas do stdin. As funções usadas para ler as linhas são:

  • Obter linha()
  • getchar ()
  • putchar ()
  • scanf ()

Vamos explicar todas essas funções em detalhes.

Obter linha(): Esta função é usada para ler as linhas do stdin. Para entender essa função, vamos considerar o exemplo, criaremos um arquivo de texto com o nome MyFile2.C e escreva o seguinte script:

#incluir
#incluir
int main (vazio)

printf (“Por favor, digite uma linha: \ n”);
char *linha = nill;
size_t len ​​= 0;
ssize_t linesize = 0;
linesize = getLine (& line, & len, stdin);
printf (“Você entrou %s, que tem %zu chars.\ n ”, linha, linesize -1);
Linha gratuita);
retornar 0;

Compilar o script do arquivo2.c usando o compilador GCC:

$ gcc myfile2.C -O MyFile2

Execute o código usando o comando:

$ ./myfile2

Na saída acima, podemos ver que uma linha é retirada do stdin e depois exibida com a contagem de seus caracteres. A função getLine () lê uma frase completa do stdin e aloca alguma memória na pilha e salva lá. No getLine () passamos o endereço da memória onde a linha deve ser armazenada, o endereço do comprimento da linha e o stdin. Em seguida, basta exibir a linha e seu comprimento usando a função printf (). Além disso, no final, usamos gratuitamente () para que o espaço ocupado na memória possa ser liberado para reutilizá-lo na próxima vez.

getchar (): O getchar () A função é usada para ler o primeiro caractere do stdin e o putchar () é usado para exibir o único caractere na tela. A desvantagem do getchar () e putchar () é que eles podem ler e exibir apenas um caractere por vez, mas podemos usar um loop para exibir todos os caracteres de stdin. Para entender isso, escreva o seguinte código:

#incluir
#incluir
int main ()
char c;
int i, l;
fprintf (stdout, "Digite o comprimento da string:");
fScanf (stdin, "%d", & l);
fprintf (stdout, "Digite um valor:");
para (i = 0; i<=l; i++)

c = getc (stdin);
putc (c, stdout);

fprintf (stdout, "\ n");
retornar 0;

Compilar o código usando o compilador GCC:

$ gcc myfile4.C -O MyFile4

Execute o myfile4:

$ ./myfile4

No código acima, inserimos uma linha “Olá! É linuxhint ”e o getchar () lê o primeiro caractere da linha, e putchar () é usado para exibir a linha. Primeiro, perguntamos ao usuário sobre o comprimento da corda e depois a exibimos com a ajuda de um loop.

scanf (): O outro método amplamente utilizado para ler a linha do stdin está usando a função "scanf ()". O scanf pega a entrada do stdin, depois a digitaliza e o salva em alguma variável ou matriz. Por exemplo:

#incluir
int main ()
char a [100];
fprintf ("Digite uma string:");
fScanf (stdin, "%s", a);
fprintf (stdout, "\ nyou entrou na seguinte sequência: %s", a);
fprintf (stdout, "\ n");
retornar 0;

Usando o compilador GCC, compila o programa do myfile5.C para depurar os erros:

$ gcc myfile5.C -O MyFile5

Execute o myfile5:

$ ./myfile5

No script acima, simplesmente declaramos a matriz "A" com o tipo de dados do caractere, com a ajuda do scanf (), tiramos a entrada do stdin. Usamos a constante “%s” que é usada para ler e imprimir as cordas também. Em seguida, exibi a string armazenada na matriz A [] que é "olá".

Conclusão

O stdin é usado para obter a entrada do teclado e pode ler de maneiras diferentes. Existem diferentes funções usadas para ler o stdin. Neste artigo, usamos funções diferentes usadas para ler uma linha. A função interna na programação C é GetLine () que é usada para ler as linhas do stdin. Mas também podemos usar outras funções como getchar () e scanf () para ler as linhas.