Bienvenido: ( Identificarse | Registrarse )      
Foros de Trucos Windows
 
Closed TopicStart new topicStart Poll

Outline · [ Estándar ] · Lineal+

> [C]Dudilla con el return

newbi
post Jan 7 2008, 12:57 PM
Publicado: #1


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


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ornitorrinco's
post Jan 7 2008, 02:22 PM
Publicado: #2


Maestro Perfecto
Group Icon

Grupo: Moderadores
Mensajes: 2.026
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;


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
jando
post Jan 10 2008, 05:36 AM
Publicado: #3


Miembro Avanzado (llega el dia en que el alumno supera al maestr
*****

Grupo: Members
Mensajes: 250
Registrado: 27-December 07
Desde: Matamoros, Tamaulipas México
Miembro nº: 220.710



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"


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
ornitorrinco's
post Jan 10 2008, 02:09 PM
Publicado: #4


Maestro Perfecto
Group Icon

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



no, el return 0; es algo estándar de C, no hay que añadir la librerio de conio.h
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
RadicalEd
post Jan 10 2008, 02:54 PM
Publicado: #5


Desocupado Programando
Group Icon

Grupo: Moderadores
Mensajes: 635
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.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Jan 10 2008, 05:41 PM
Publicado: #6


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
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
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
PC_MAC
post Feb 8 2008, 10:10 PM
Publicado: #7


Miembro Elite
****

Grupo: Members
Mensajes: 119
Registrado: 11-November 07
Miembro nº: 217.125



Bueno, te respondo porque parece que aqui se ha creado la polemica jeje aggressive.gif biggrin20jy.gif.

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. whistling.gif .

Sobre lo del fprintf sirve para mandar una serie de argumentos(pueden ser cadenas numeros etc etc etc) a un stream, por ejemplo a un archivo (tambien llamado fichero depende del pais donde estes jeje), has de cuenta que por ejemplo puedes mandar a escribir "hola mundo" en un archivo txt que despues puedes abrir con el block de notas, sobre esto hay mucha informacion y ejemplos en la red. Cualquie otra duda estamos para ayudar.

Saludos.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Feb 8 2008, 10:56 PM
Publicado: #8


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
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.  whistling.gif
*

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.h

Saludos
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
PC_MAC
post Feb 8 2008, 11:09 PM
Publicado: #9


Miembro Elite
****

Grupo: Members
Mensajes: 119
Registrado: 11-November 07
Miembro nº: 217.125



Ohhh new18.gif lo siento lei mal rob1104 ya sabes las prisas biggrin20jy.gif perdon pero me confundi al ver la cita en tu mensaje y pense que tu lo habias escrito(no se en que estaba pensando wacko.gif ).


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
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Feb 8 2008, 11:12 PM
Publicado: #10


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.624
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



QUOTE(PC_MAC @ Feb 8 2008, 05:09 PM)
Ohhh  new18.gif  lo siento lei mal rob1104 ya sabes las prisas  biggrin20jy.gif , 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 biggrin20jy.gif debido a que ya se dió la solucion y todo está arreglado doy este tema por cerrado.

Saludos
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
Closed TopicTopic OptionsStart new topic

Collapse

> Topicos similares

Dudilla en Java Marzzipan 156 2 Apr 11 2008, 11:06 PM
By: Marzzipan
Dudilla con un juego Pavilongo 128 1 May 13 2007, 08:52 PM
By: Oxkr
Dudilla de procesador y ram Pavilongo 201 3 Nov 21 2006, 06:00 PM
By: ferolvera
dudilla sobre nvidia firebat42 1.299 33 Jan 13 2006, 03:37 AM
By: firebat42
buenas, tengo una dudilla Kondemorl 347 2 Nov 6 2005, 11:04 PM
By: Kondemorl

Google
Web www.trucoswindows.net