Programa tu juego #7
Capítulo 7: Entrada por teclado
Durante estos capítulos os habréis preguntado que cómo hacemos para que el usuario de nuestro programa introduzca datos por el teclado para que el programa trabaje con ellos. Por ejemplo: el usuario introduce el radio de una circunferencia por el teclado y el programa calcula el perimetro y el área de dicha figura. Pues bien, este capítulo lo dedicaremos a esta técnica.
Para hacer esto haremos uso de la función scanf (mucho os sonara a printf). A continuación colocaré varios ejemplos de uso de esta función y los comentaré un poco:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
printf( "Introduce un número entero: " );
scanf( "%i", &num );
fflush(stdin);
printf( "Has introducido el número %i\n", num );
system(“pause”);
return 0;
}
Nótese que en el printf no ponemos el carácter \n, eso es para que el cursor que aparece cuando se usa un scanf no aparezca en la siguiente línea. Lo que hacemos es poner dos puntos y un espacio. Es algo meramente estético pero notaréis que queda mucho mejor de esta manera.
También podemos hacer lo siguiente:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c;
printf( "Introduce tres números: " );
scanf( "%i %i %i", &a, &b, &c );
fflush(stdin);
printf( "Has tecleado los números %i, %i y %i\n", a, b, c );
system("pause");
return 0;
}
Vemos que en un mismo scanf podemos introducir más variables. Usamos %i porque se trata de enteros, pero podriamos usar %f, %c, si fueran otras variables.
También podríamos usar para leer caracteres del teclado la función getchar y para ponerlos en pantalla putchar. Si queréis podéis buscarlos en Google para ver cómo funcionan. Aquí no los vemos porque con scanf es suficiente.
Ahora viene lo que muchos habíais pedido así que no quiero quejas, jeje. Tarea, si señores, hay deberes para casita. Quiero que escribáis los sisguientes programas utilizando todas las herramientas vistas hasta ahora: variables, constantes, operadores, salida por pantalla, lectura de datos por teclado...
- Un programa que ponga como título: “PERÍMETRO Y ÁREA DE LA CIRCUNFERENCIA”. Durante el programa debe pedir el radio al usuario e imprimir los resultados posteriormente. Debe quedar bonito, es decir, usando espacios y caracteres \n.
- Un programa exactamente igual que el anterior pero para calcular a partir del lado de un cuadrado: perímetro y área.
Eso es todo por ahora, en el próximo número pondré las soluciones, nos veremos dentro de dos días con estructuras selectivas y de control de flujo. Ahora suena todo muy estrambótico pero os aseguro que es muy fácil.
Números anteriores de “Programación de videojuegos”.
Todo sobre















Autor:
(David Saltares) , 08/10/2008 



¿Vais a enseñar tambien c++ o solo c? Porque solo he llegado ha hacer juegos super simples pero no me los imagino sin clases :)
En C se pueden hacer muchas cosas, eliminando el paradigma de la programación orientada a objetos. Te aseguro que para crear juegos sencillos las clases no son necesarias, al igual que la POO, nos basta con la estructurada. Saludos.
yo me la paso bien con mi juego no me da problema okkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk que les quede claro de luz
Una pregunta David, para que sirve la funcion fflush(stdin). Y que opinas sobre trabajar en la plataforma Linux, ahi aprendi a programar en C y la vdd es que si tiene diferencias en comparacion del Dev.
como se descargo?
ANTARES: Perdón por no haberlo explicado en el artículo. Bien por tu interés, muchas gracias. Cuando leemos desde el teclado con scanf, la información se guarda en un buffer, posteriormente va a la memoria. A veces se quedan cosas en el buffer que no queremos ya, basura. Esos datos pueden darnos problemas a la hora de hacer uso de nuevo de scanf, por lo que vaciamos ese buffer. fflush(stdin), viene de vaciar(entrada estándar), es decir, vaciar el buffer del teclado. Así no tendremos conflictos. Gracias por la observación y saludos.
Navegante: que pretendes con tu comentario "como se descargo?". No creo que podamos ayudarte con esa información. Necesito que especifiques algo más. Si te refieres a cómo descargarte esta guía: no se puede, la publico poco a poco, cada dos días aquí. Si te refieres a como se descarga el DevC++ pues viene explicado en el número 2 de la guía. Saludos.
ANTARES: Se me olvido comentar lo de la programación en Linux. Allí lo que tienes que hacer es instalar el compilador gcc (es el mismo que usa DevC++). Posteriormente escribes el código con un editor de textos cualquiera, como gedit, al igual que se tratase del bloc de notas. Una vez hecho eso desde la terminal le dices a gcc que compile el código. Cuando se compila lo ejecutas a través de la terminal. Es más complicado, pero para mucha gente es mejor programar en Linux. Supongo que para gustos colores. Como estamos haciendo el juego y lo que usaremos luego sólo se puede usar en Windows, explico programación centrandome en Windows. Saludos.
porfavor me puedes volver a enviar al correo el capitulo 7? edgio9@gmail.com
Todos los capítulos están en GuiaMania, no podemos enviarlos por mail a cada uno xD