Cómo leer líneas de Stdin en la programación C

Cómo leer líneas de Stdin en la programación C
El stdin es la forma corta de la "entrada estándar", en la programación de C, el término "stdin" se usa para las entradas que el usuario toman del teclado o desde un archivo. El "stdin" también se conoce como puntero porque los desarrolladores acceden a los datos de los usuarios o archivos y pueden realizar una acción sobre ellos.

En este artículo, utilizaremos las funciones incorporadas de la programación C que se puede usar para leer la entrada de Stdin.

Cómo leer una línea de Stdin en la programación C

Hay diferentes funciones integradas utilizadas en la programación C para leer las entradas del stdin. Las funciones utilizadas para leer las líneas son:

  • obtener línea()
  • getchar ()
  • putchar ()
  • scanf ()

Explicaremos todas estas funciones en detalle.

obtener línea(): Esta función se usa para leer las líneas del stdin. Para comprender esta función, consideremos el ejemplo, crearemos un archivo de texto con el nombre myFile2.c y escriba el siguiente script:

#incluir
#incluir
int main (nulo)

printf ("Ingrese una línea: \ n");
Char *line = nill;
size_t len ​​= 0;
ssize_t lineize = 0;
líneasee = getline (& line, & len, stdin);
printf (“Entró en %s, que tiene %zu chars.\ n ”, línea, líneas -1);
Línea libre);
regresar 0;

Compilar el script de file2.c usando el compilador GCC:

$ GCC myFile2.c -o myFile2

Ejecute el código usando el comando:

ps ./myFile2

En la salida anterior, podemos ver que se toma una línea del stdin y luego se muestra con el recuento de sus caracteres. La función getLine () lee una oración completa del stdin y asigna algo de memoria en el montón y la guarda allí. En el GetLine () pasamos la dirección de la memoria donde se debe almacenar la línea, la dirección de la longitud de la línea y el Stdin. Luego, simplemente muestre la línea y su longitud usando la función printf (). Además, al final, usamos gratis () para que el espacio ocupado en la memoria se pueda borrar para reutilizarlo la próxima vez.

getchar (): El getchar () La función se usa para leer el primer carácter del stdin y el putchar () se usa para mostrar el solo carácter en la pantalla. El inconveniente de getchar () y putchar () es que pueden leer y mostrar solo un personaje a la vez, pero podemos usar un bucle para mostrar todos los caracteres de Stdin. Para comprender esto, escriba el siguiente código:

#incluir
#incluir
int main ()
char c;
int i, l;
fprintf (stdout, "Ingrese la longitud de la cadena:");
fscanf (stdin, "%d", & l);
fprintf (stdout, "Ingrese un valor:");
para (i = 0; i<=l; i++)

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

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

Compile el código utilizando el compilador GCC:

$ GCC myFile4.c -o myFile4

Ejecutar el myFile4:

ps ./myFile4

En el código anterior, ingresamos una línea "Hola! Es linuxhint ”y el getchar () lee el primer carácter de la línea, y Putchar () se usa para mostrar la línea. Primero, le hemos preguntado al usuario sobre la longitud de la cadena y luego la mostramos con la ayuda de un bucle.

scanf (): El otro método ampliamente utilizado para leer la línea desde el stdin es usar la función "scanf ()". El scanf toma la entrada del stdin, luego la escanea y la guarda en alguna variable o matriz. Por ejemplo:

#incluir
int main ()
char a [100];
fprintf ("Ingrese una cadena:");
fscanf (stdin, "%s", a);
fprintf (stdout, "\ nyou ingresó la siguiente cadena: %s", a);
fprintf (stdout, "\ n");
regresar 0;

Usando el compilador GCC, compile el programa de myFile5.C para depurar los errores:

$ GCC myFile5.c -o myFile5

Ejecutar el myFile5:

ps ./myFile5

En el script anterior, simplemente declaramos la matriz "a" con el tipo de datos de caracteres, con la ayuda de scanf () tomamos la entrada del stdin. Usamos la constante "%s" que se usa para leer e imprimir las cadenas también. Luego mostró la cadena almacenada en la matriz un [] que es "hola".

Conclusión

El stdin se usa para tomar la entrada del teclado y puede leer de diferentes maneras. Hay diferentes funciones utilizadas para leer el stdin. En este artículo, hemos usado diferentes funciones utilizadas para leer una línea. La función incorporada en la programación C es getLine () que se usa para leer las líneas del stdin. Pero también podemos usar otras funciones como getchar () y scanf () para leer las líneas.