Hola y bienvenido.
En esta conferencia, quiero hablar sobre lectura de entrada desde el teclado.
Este es un concepto básico que yo
quería que aprendieran temprano porque es muy valioso y muchos programas toman entrada.
Así que proporcioné esto desde el principio.
Algunos de los conceptos no son va a quedar completamente claro.
Pero definitivamente aprenderemos estos conceptos en otras secciones a medida que avanzamos,
pero es importante aprenda esto muy temprano, y es muy similar
a la función printf.
Así que hemos hablado de la salida.
Sabemos formatear salida usando printf.
Ahora tenemos que aprender un poco un poco sobre la entrada, obteniendo
información del usuario esencialmente.
Es muy útil preguntarle al usuario para ingresar datos en un programa.
Hablamos de línea de comando argumentos que ingresan datos de esa manera, esa
es una forma de hacerlo.
Otra forma es preguntarle al usuario directamente para que puedan escribir algo
en el teclado.
Entonces obtienes la información de el teclado, pero se muestra, ingresa
la entrada a través del terminal la consola.
Así es como ingresa la entrada.
La biblioteca c contiene varias funciones de entrada.
Usaremos scanf.
Esa es la función más genérica.
Es muy útil.
Proporciona diferentes formatos que puede ingresar.
Entonces puede ingresar texto y luego conviértase a diferentes formatos.
Entonces, scanf lee la entrada del flujo de entrada estándar, eso es stdin.
De hecho, Scanf se puede utilizar para leer de archivos también si el flujo de
entrada es un archivo.
Pero no nos vamos a preocupar sobre
algo de eso por ahora, solo lo usaremos para leer la entrada del teclado.
De acuerdo, y entonces stdin por el predeterminado es el teclado.
Stdin es una corriente.
Corrientes yc, tres diferentes corrientes.
El flujo de errores, estándar entrada y salida estándar.
Estándar en por defecto es el teclado.
Así que vamos a mantenerlo así.
Y usando scanf va a leer desde el estándar y luego según lo
que ingrese o cómo desea almacenar los datos,
debería decir, va a convertir lo que ingresó porque
lo que ingrese será texto.
Va a convertir ese texto a el formato que proporcionaste.
Va a utilizar especificadores de formato. al igual que la función printf.
Entonces el formato puede ser una secuencia de caracteres, que se llama cadena.
No hemos estudiado eso con mucho detalle todavía.
Pero de nuevo, lo haremos cuando hablamos de tipos de datos.
Y luego también puedes especificar otros tipos de datos de los
que vamos a hablar, como enteros, números básicamente.
Entonces puedes leer números.
Puedes leer cadenas.
Puede leer números que contienen decimales, caracteres individuales individuales,
todas estas cosas bonitas.
Si la entrada estándar es de el teclado, que es el predeterminado, lo que sucederá es
a medida que escribe el texto a través del teclado, tomará ese
texto y lo colocará en el programa c y va a convertir ese texto.
Y el texto es cosas como letras, dígitos y puntuación.
Así que aunque estés escribiendo un número, sigue siendo texto porque
proviene del teclado.
Entonces, si ingresa el entero 2014, que es un número y esencialmente lo que está sucediendo es que estás
escribiendo caracteres dos cero uno y cuatro.
Y que pasa y que sucederá si agregará enviar esa
entrada al programa c.
Y si quieres almacenar esos datos como un número, entonces tendrás
que convertir esos datos.
Y entonces tienes que especificar el formato especifique cómo desea convertirlo, tal
como lo hace en printf.
Recuerda que con printf usas porcentaje d para imprimir un número entero.
Convertirías el texto a un número entero que usa el porcentaje d también
para scanf si desea convierte la cadena en un número.
Y eso es lo que vamos hacer por lo básico desde el principio.
Solo usaremos números porque conocemos
los números hasta ahora, y realmente no aprendido sobre cuerdas todavía.
Así que principalmente vamos a usamos números cuando ingresamos.
Así que scanf.
Es muy similar a printf.
Pero en cambio, es un poco diferente en ciertos argumentos que toma.
Todavía usa una cadena de control seguido de una lista de argumentos.
Entonces va a haber algo en esas comillas dobles.
Las comillas dobles normalmente solo contiene una cosa y será el
especificador de formato.
Cómo vas a convertir los datos.
Entonces la cadena de control indica los tipos de datos de destino para el flujo
de caracteres de entrada.
Es ese especificador de formato, porcentaje d, porcentaje c, porcentaje s,
porcentaje f para flujo, etc.
La función printf usa variable nombres, constantes y expresiones en
sus argumentos porque aprendemos eso.
Tienes algo entre comillas dobles.
Y luego dentro del doble comillas, utiliza especificadores de formato.
Y luego, después de las comas, puede imprimir variables o
incluso puede imprimir expresiones.
Expresiones de las que hablaremos más detalles también, algo que
esencialmente devuelve un valor.
Tipo de expresión más común es una expresión aritmética.
La función scanf es diferente porque en lugar
de mostrar variables, va a utilizar variables a las que se apunta.
Pero afortunadamente apunta es un gran concepto en c.
No tienes que saber nada sobre punteros para comprender y
utilizar la función scanf.
Así que no te preocupes por eso.
Está bien, todo lo que tienes que hacer eres tú Debe recordar tres reglas
sobre la función scanf para poder utilizarla.
Devolverá el número de elementos que lee correctamente.
Entonces, si lee una variable, dos variables, tres variables, devolverá
eso.
Si usa scanf para leer un valor para uno de los
tipos de variables básicas que vamos a discutir, como como el int, el flotador, el doble, entonces todo lo que
tienes que hacer es el nombre de la variable, el argumento debe ir
precedido de un ampersand.
Ni siquiera necesitas saber por qué eso es ahora, pero
simplemente hágalo, cualquiera de los tipos de datos básicos.
Ampersand es la dirección.
Y porque scanf toma un puntero tienes que quitar la referencia, tienes que
pasar la dirección.
La tercera cosa que tu tengo que recordar para scanf.
Si usa scanf para leer un cadena que es una secuencia de caracteres
en un carácter, usted no tienes que usar el ampersand.
Entonces, básicamente, scanf toma dos argumentos de los que les voy
a mostrar un ejemplo.
El primer argumento será cómo para convertir los datos que ingresa.
Y si almacena esos datos en int, usa el especificador de formato
de uso porcentual percent d.
Si quieres almacenar en cadena que aún no conocemos,
usa percent s.
Y luego el segundo argumento es y podría haber muchos argumentos dependiendo
de cuántos especificadores de formato use porque al igual que printf sería la
variable real, el nombre de la variable.
Y si la variable es todo menos una cadena, solo usa el ampersand.
De lo contrario, no use el ampersand.
La función Scanf también usa espacios en blanco para decidir cómo dividir la
entrada en campos separados.
Y el espacio en blanco incluye nuevas líneas, tabulaciones y espacios.
Y de nuevo, pasaré por un ejemplo. para mostrarte lo
que eso significa porque, al igual que printf, puede mostrar muchos, muchas variables
dependiendo de cuántos especificadores de formato tenga dentro del comillas simples, lo mismo con scanf.
Si scanf tiene varias cosas dentro de las comillas
dobles, leerá múltiples entradas.
Y las entradas van para ser dividido por nuevas líneas.
Así que de nuevo, si quieres probar para entender qué es scanf,
es lo opuesto a printf.
Printf va a convertir enteros, números de punto flotante, cadenas de caracteres, todos
estos datos diferentes tipos y lo convertirá
a texto, para que pueda ver su salida.
Y va a ser mostrado en la pantalla.
Scanf es lo contrario.
Va a tomar como entrada texto y convertirlo a cualquiera de los diferentes tipos de
datos como ints, flotadores y dobles.
Así que veamos un ejemplo.
Esto es un ejemplo de nuestro un programa simple.
Sabemos cuál es la rutina principal.
Sabemos lo que es la directiva de inclusión.
No hemos aprendido sobre caracteres y enteros todavía.
Pero básicamente en la cima de eso función principal, estamos
creando dos variables porque necesitamos almacenar los datos, y vamos a hablar sobre
las variables con mucho más detalle.
Pero al igual que la función printf, de nuevo, estás haciendo lo contrario.
Así que aquí mostramos la salida a la pantalla que dice ingrese un valor.
Scanf dentro del doble quotes tiene especificadores de formato para leer
en la entrada.
Y entonces tienes que especificar el datos que se van
a leer, aquí dice porcentaje s, porcentaje d.
Lo que eso significa es que estamos leyendo en un string, entonces estamos leyendo en un int.
Y notarás que la cuerda no tiene el ampersand y scanf después de
la primera coma.
Y después de la segunda coma, tenemos un ampersand porque es un número entero.
Estamos leyendo un número.
Y luego el printf está mostrando la salida.
Entonces está diciendo que ingresaste en este cadena en este entero, al igual que
sabemos lo que hace printf y luego la función principal devuelve un cero.
Muy bien, repasemos esto ejemplo en un segundo en bloques de código.
Pero solo reiteremos un par de conceptos.
Cuando un programa usa scanf para recopila información del teclado, espera
a que introduzca algún texto.
De modo que el programa va para pausar hasta que ingrese los datos.
Y luego, una vez que ingrese un texto.
Y si ingresa algún espacio en blanco, si está ingresando en varias cosas,
entonces el programa continúa y lee la entrada una vez que
presiona el botón Enter.
Tienes que presionar el botón Enter.
De nuevo, scanf espera entrada en el exactamente el mismo formato que proporcionaste.
Entonces, si dices porcentaje sy porcentaje e, eso significa que debe
proporcionar una cadena seguida de un espacio, cualquier número de espacios seguidos
de un entero, un número y una palabra.
Cadena es una palabra entero es un número.
Así que veamos este ejemplo línea por línea en bloques de código.
Bien, aqui tenemos nuestra función principal.
Y de nuevo, es importante estar capaz de introducir datos en un programa.
Así que al igual que la printf, va para ser muy similar, y no tenemos
que entender todo este código.
E incluso nos deshacemos del parámetros que se
pasan, función principal simple.
No tenemos que entender todo este código.
Ni siquiera tenemos que entender qué variables hay en este punto.
Pero las variables almacenarán datos.
En el ejemplo, estamos creando una matriz de cadenas de 100 y con un punto y coma y luego
estamos también va a crear un
número entero, como en printf.
Tenemos un número entero, pero estamos usando una cuerda.
Solo quiero demostrar diferentes entradas.
Entonces, por lo general, siempre que Llame a la función scanf para obtener entradas desde el
teclado, siempre está va a decirle algo al usuario.
Quieres decirles qué deben ingresar.
Así que printf, recuerda, muestra datos en la pantalla.
Solo vamos a decir que ingrese un valor.
Y ellos realmente van a ingresamos un par y luego lo terminamos con un
punto y coma.
Tenemos que decirle al usuario para ingresar algo.
Ahora aquí es donde nosotros utilice la función scanf.
Decimos scanf y luego dentro del entre paréntesis, el primer argumento dentro de
las comillas dobles va para ser datos que vamos a leer.
Entonces, en este ejemplo, vamos a digamos que solo vamos a leer
un porcentaje de entrada d, que es un int.
Y luego vamos a almacenar esos datos en una
variable porque queremos verlos.
Y voy a ser yo.
Ahora tenemos que especificar el ampersand antes de eso porque, recuerda, este pequeño
truco con punteros.
No tienes que saber por qué, es solo la dirección.
Entonces ese scanf, en la línea 17, va a leer datos del teclado hasta que el
usuario presione el botón Enter.
Y luego esos datos van a almacenarse en una variable llamada I.
Así que ahora solo queremos imprimir lo que ingresamos.
Así que aquí solo vamos a decir: vamos a agregar un avance de línea para que
sea legible, así que vamos a use nuestra secuencia de
escape, barra invertida ny le diremos.
Ingresaste el porcentaje d y nos vamos para mostrar el valor de la variable.
Y también vamos a poner un salto de línea después.
Entonces el valor de la variable que queremos mostrar es i.
Vamos a terminar con un punto y coma.
Y luego ese es nuestro programa.
Así que de nuevo imprimiendo salida, solicitando un valor, leyendo una línea de entrada 17 que especifica que los
datos que estamos la lectura es un número entero, lo guardo en, yo
uso un ampersand, y luego imprima lo que acabamos de ingresar.
Así que construyamos esto y ejecutémoslo.
Y verás que comienza el programa y luego se detiene porque quiere que
ingrese un valor.
Dice ingresar un valor.
Entonces, en este punto, tengo que ingresar un número que puedo convertir en una cadena porque eso es lo
que está sucediendo.
Así que aquí solo voy a decir 56.
Y luego, voy a presionar Enter.
Se ejecutó dos veces porque mi escáner de virus.
Entonces voy a decir 56 y luego entrar.
Y luego se imprime, ingresé 56.
Entonces pude ingresar información, número y lo almacenó en una variable.
Ahora como printf, realmente puede hacer que ingresen varias
cosas y almacenar en múltiples variables.
Así que aquí, después de que terminen en un entero, voy a
decir otro porcentaje, especificador de formato porcentaje s, lo que significa que quiero que ingresen una cadena, que
es solo buscar una palabra.
Así que aquí, recuerda, si es una palabra, yo no es necesario que proporcione el ampersand.
Así que solo voy a decir revuelo, quiero almacenar esos
datos en la variable store.
Y nuevamente, aprenderemos sobre las variables.
Y luego me voy para imprimirlo.
Y agregué otra variable para ya conoces la printf y solo pondré dos puntos
antes de que tú también tengas para especificar el formato que
está imprimiendo, por lo que son porcentajes.
Así que, con suerte, eso está claro.
Ahora voy a leer en dos entradas separadas por espacios, almacenarlas en
dos variables, yo y revuelva y luego muéstrelos.
Así que ahora si construimos y corremos.
Entonces aqui voy a entrar en mi número 22, voy a presionar el espacio y luego voy a ingresar mi nombre y luego
voy a presionar regresar.
Cuando hago eso, el programa se pondrá en pausa y
mostrará el número que ingresado y luego la cadena.
Entonces muestra 22 y Jason.
Así que así es como puedes conseguir entrada del usuario, cuatro o cinco
líneas simples de código.
Otra cosa rápida que quiero mostrar es como se puede leer en doble.
Entonces, más adelante en las lecciones, se le mostrará cómo leer en flotador y
eso generalmente se usa un formato de porcentaje especificado f.
Pero si corres y lees por duplicado, en realidad es un poco
diferente si usas el porcentaje de si, así que mantén esto en el fondo de tu mente.
Si creo un nombre de variable doble x y luego uso scanf para leer eso, necesito leerlo usando
el porcentaje de LF.
Ese es el formato especificador que desea utilizar.
Y luego otra vez al igual que el otros, usaría el ampersand
para la dirección y diría x.
Y así es como puedes específicamente leído en un doble.
Y eso es diferente que leer en un flujo.
Así que mantén esto en el fondo de tu mente.
Cuando vayas a ejecutar esto, notarás funciona bastante sencillo.
Y puedes leer la entrada leyendo un doble.
Así que sigue adelante y ejecuta eso.
Y entonces va a pedir doble, realmente no hice mucho.
Y este doble sería como 77. 8 y luego lo leeremos y lo almacenaremos,
es bastante sencillo.
Entonces el scanf es muy útil como mencioné.
Otras cosas con el scanf notará a medida que avanza
en el curso es que scanf a veces no funciona tan bien.
Puede utilizar f get s para otras cosas.
El principal problema con scanf es cuando lee, solo está leyendo hasta
que vea un espacio.
Y si intentas usar scanf, intenta llamarlo varias
veces en una función.
Con otras combinaciones, puede no funciona muy bien porque
lo que está sucediendo es cuando golpeas el botón de retorno en
el teclado, va a no va a lee ese botón de retorno porque solo
se lee en una palabra.
Y entonces no va para obtener el avance de línea.
Entonces, la próxima vez que use scanf, inmediatamente se saltará esa línea
y va para leer en el salto de línea.
Entonces este es un problema que verás si escribe varios scanfs
en un solo programa uno tras otro, notará que
los otros escaneos no se están ejecutando porque están leyendo en el avance de línea.
Una forma muy fácil de evitar eso es justo después de hacer un escaneo si solo
llamas a git char y luego llamas otro escáner, pero ese es más un concepto
del que hablar más adelante.
Esto fue solo para mostrarte cuando lee en doble usando
scanf, asegúrese de usar porcentaje LF.
Y nuevamente, esto es útil porque algunos de nuestros desafíos lo alinearán para
obtener información del usuario para hacer cosas útiles y
aprender diferentes conceptos, estamos capaz de obtener información del usuario.
Así que espero que esto haya ayudado.
Y de nuevo, no te preocupes por
algunos de estos conceptos que no está comprendiendo completamente las cosas como variables y
cadenas, vamos a discutir todo eso con mucho detalle, gracias.