|
|
|
|
Outline ·
[ Estándar ] ·
Lineal+
[C]Dudilla con el return
| newbi |
Jan 7 2008, 12:57 PM
|
Miembro Avanzado
  
Grupo: Members
Mensajes: 69
Registrado: 19-October 06
Miembro nº: 184.043

|
Hola foreros!, estoy estudiando el c y para que te muestre un simple mensaje (es decir "parar" el codigo) usamos el system("pause"); o getchar();, pero viendo muchisimos ejemplos en internet como por ejemplo algo sencillo: CODE #include <stdio.h>
int main() { char nombre[20]; unsigned int edad=0;
printf( "Escriba su nombre: " ); scanf( "%s", nombre ); printf( "Escriba su edad: " ); scanf( "%u", &edad );
printf("\nHola %s. Tienes %d anyos.\n", nombre, edad );
return 0; } bueno pues mi duda es que no me muestra el mensaje del printf..., se supone que el return 0; hará que termine el programa pero el código en si debería mostrar el mensaje del printf o no? otra duda es que he leido algo del fprintf pero no entiendo como funciona
|
|
|
|
|
| ornitorrinco's |
Jan 7 2008, 02:22 PM
|
Maestro Perfecto

Grupo: Moderadores
Mensajes: 2.034
Registrado: 1-May 05
Desde: un bilbaino no solo vive donde quiere, sino que nace donde le da la gana
Miembro nº: 120.978

|
pues a mi me compila y ejecuta perfectamente, no se dónde puede estar el problema(como no sea tu compilador) si te refieres a que lo ejecutas en windows y se cierra la ventana, en realidads te muestra el mensaje pero se cierra al instante, para evitar que pase eso debes añadir CODE fflush(stdin); getchar();
antes del return 0;
|
|
|
|
|
| RadicalEd |
Jan 10 2008, 02:54 PM
|
Desocupado Programando

Grupo: Moderadores
Mensajes: 654
Registrado: 7-February 05
Desde: SoloCodigo
Miembro nº: 76.900

|
QUOTE(jando @ Jan 10 2008, 06:36 AM) si quieres utilizar "return 0", antes de el debe de ir "getch ()" y se debe de poner la directiva #include<conio.h> para que el programa pueda identificar el "return 0" En serio sabes qué estás diciendo ó qué es lo que el chavo está preguntando? No digas cosas sin saber.
|
|
|
|
|
| rob1104 |
Jan 10 2008, 05:41 PM
|
Gears of War 2 ... a reason to have an Xbox 360...

Grupo: Moderadores
Mensajes: 1.728
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, México
Miembro nº: 93.342

|
QUOTE(jando @ Jan 9 2008, 11:36 PM) si quieres utilizar "return 0", antes de el debe de ir "getch ()" y se debe de poner la directiva #include<conio.h> para que el programa pueda identificar el "return 0" Complementando a lo de ornitorrinco's y RadicalEd, rectifico que toda esa informacion es erronea, el return es de lo mas estandar que existe en C, simplemente sirve para retornar un valor de alguna funcion, en el caso del return de la funcion int main() al devolver 0 significa que el programa termino con exito, de hecho en la libreria stdlib.h hay una constante llamada EXIT_SUCCESS que esta igualada a 0, asi como EXIT_FAILURE igualada a 1, que significa que el programa termino de forma no esperada. La libreria conio.h es una libreria de borland para implementar cierta estetica y facilidad a la programacion en consola de 16 bits, actualmente esta obsoleta, y mi consejo es que no la usen. Saludos
|
|
|
|
|
| rob1104 |
Feb 8 2008, 10:56 PM
|
Gears of War 2 ... a reason to have an Xbox 360...

Grupo: Moderadores
Mensajes: 1.728
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, México
Miembro nº: 93.342

|
QUOTE(PC_MAC @ Feb 8 2008, 04:10 PM) Simplemente antes del return 0 pon getch(); y claro incluye la libreria conio.h que es la que sirve para reconocer esa instruccion (creo que aqui fue donde se ha de haber confundido rob1104. Para nada me confundi, simplemente, que no le recomiendo que use la funcion getch() porque no forma parte el C estandar, ya que la libreria conio.h
es de la compañia Borland y era util para programar en modo consola a 16 bits, pero hoy en dia es obsoleta. En lugar de getch puede usar: CODE fflus(stdin); //Limpiar el buffer del teclado getchar(); //esperar por un caracter O simplemente CODE system("pause"); , para ello tienes que incluir stdlib.hSaludos
|
|
|
|
|
| PC_MAC |
Feb 8 2008, 11:09 PM
|
Miembro Elite
   
Grupo: Members
Mensajes: 119
Registrado: 11-November 07
Miembro nº: 217.125

|
Ohhh  lo siento lei mal rob1104 ya sabes las prisas  perdon pero me confundi al ver la cita en tu mensaje y pense que tu lo habias escrito(no se en que estaba pensando  ). El que se pudo haber confundido con lo de la libreria y el return 0 fue jando. QUOTE QUOTE(jando @ Jan 9 2008, 11:36 PM) si quieres utilizar "return 0", antes de el debe de ir "getch ()"
y se debe de poner la directiva #include<conio.h> para que el programa pueda identificar el "return 0" *
Complementando a lo de ornitorrinco's y RadicalEd, rectifico que toda esa informacion es erronea, el return es de lo mas estandar que existe en C, simplemente sirve para retornar un valor de alguna funcion, en el caso del return de la funcion int main() al devolver 0 significa que el programa termino con exito, de hecho en la libreria stdlib.h hay una constante llamada EXIT_SUCCESS que esta igualada a 0, asi como EXIT_FAILURE igualada a 1, que significa que el programa termino de forma no esperada.
La libreria conio.h es una libreria de borland para implementar cierta estetica y facilidad a la programacion en consola de 16 bits, actualmente esta obsoleta, y mi consejo es que no la usen.
Saludos . Jeje y si a prefiero utilizar el system("pause"). Saludos
|
|
|
|
|
| rob1104 |
Feb 8 2008, 11:12 PM
|
Gears of War 2 ... a reason to have an Xbox 360...

Grupo: Moderadores
Mensajes: 1.728
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, México
Miembro nº: 93.342

|
QUOTE(PC_MAC @ Feb 8 2008, 05:09 PM) Ohhh  lo siento lei mal rob1104 ya sabes las prisas  , el que se pudo haber confundido fue jando, perdon pero me confundi al ver la cita en tu mensaje y pense que tu lo habias escrito(no se en que estaba pensando). . Jeje y si a mi me gusta mas utilizar el system("pause"). Saludos No hay problema  debido a que ya se dió la solucion y todo está arreglado doy este tema por cerrado. Saludos
|
|
|
|
|
Suscribirse a esta discusión
Recibirás una notificación vía correo cuando haya una respuesta y no estés activos en los foros.
Suscribirse a este foro
Recibirás una notificación vía correo cuando haya una nueva discusión y no estés activo en los foros.
Bajar/imprimir
Podrás bajar esta discusión en varios formatos o ver una versión apta para impresora.

Topicos similares

Topicos similares
|