
04/10/2006, 03:32
|
| | Fecha de Ingreso: abril-2006 Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 9 meses Puntos: 2 | |
key0...
es verdad uno de tus errores, es declara la variable nombre como un entero, esto es incorrecto, ya que printf usa un parametro char*, es decir un array de caracteres o un pntero a char.
lo correcto seria usar char nombre[20];
y no, no es necesrio usar & ni con printf, ni con scanf, ya que en este caso nombre en realidad es el nombre que identifica una seccion de memoria.
y para detener tu aplicacion antes de salir, usa getchar(); ó system("pause");
este ultimo solo funciona en windows.
el problema con getchar(), es que si elbuffer de lectura no esta vacio, no detendra la aplicacion.
bien podrias hacer:
fflush(stdin);
getchar();
para asegurarte de que se detendra.
lo que se hace es leer de la entrada estandar, esto permite que la aplicacion se detenga a esperar un caracter de entrada.
el system, hace una llamada al SO:
xp64, tal vez has visto que a prinf o scanf se le pasen parametros diferentes a char[], esto es posible por que estas funciones usan parametros variables, indefinidos o como quieras llamarles,
el prototip es este:
printf(char* , ...);
el puntero a char es para una cadena que sirve para indicar el formato y cantidad de tipos que se le pasen a la funcion, los 3 puntos indican parametros variables o indefinidos.
para escribir tanto una cadena como un entero hacemos:
char nombre[] = "Un nombre";
int edad = 20;
printf("%s %i \n", nombre, edad);
como vez printf imprimira las 2 variables a la vez, pero tenemos que indicarle el respecitvo formato de las variables a escribir. %s para string(cadena), %i para integer(entero), hay otros indicadores de formato.
con scanf es similar solo que cuando lees una variable diferente a una cadena tienes que usar el operador &, para pasar la memoria de la variable y esta sufra cambios, de lo contrario se parasara una copia.
Saludos. |