Páginas: 1 [2]
|
 |
|
Autor
|
Tema: gets (strings) no lo entiendo muy bien, ayuda plz (Leído 635 veces)
|
Pseudoroot
Desconectado
Mensajes: 838
|
en el segundo code no hay gets
|
|
|
|
|
En línea
|
|
|
|
Cab Calloway
Colaborador
Desconectado
Mensajes: 4.262
|
A er, en el primero hazlo así:#include <stdio.h> #include <conio.h>
int main() { char oracion[81]; char *p; int i; printf("Escribe un numero entero: "); scanf("%i",&i); printf( "Escribe una oracion:\n"); p=gets(oracion); printf( "\nHas escrito: \"%s\"\n", oracion ); getch();
return 0; } En el segundo te ha faltado el "&" en el scanf:#include <stdio.h> #include <conio.h>
main() { char nombre[10]; int n; printf ("Numero de Veces: " ); scanf("%i",&n); for (int i = 0; i < n; i++) { printf("\nIntroduce tu nombre: "); scanf("%s",&nombre); printf("Bienvenido a C, %s",nombre); } getch(); } Saludos!
|
|
|
|
« Última modificación: 16 Septiembre 2005, 23:12 por kasswed »
|
En línea
|
Se busca gato.
|
|
|
Pseudoroot
Desconectado
Mensajes: 838
|
para que haces esto char *p; p=gets(oracion); si luego imprimes printf( "\nHas escrito: \"%s\"\n", oracion ); no deberia imprimir talvez printf( "\nHas escrito: \"%s\"\n", p ); La función gets retorna cadena si es realizada con éxito
|
|
|
|
|
En línea
|
|
|
|
Fletch
Desconectado
Mensajes: 5
|
Disculpen el segundo programa era este:
#include <stdio.h> #include <conio.h>
main() { char nombre[10]; int n; printf ("Numero de Veces: " ); scanf("%i",&n); for (int i = 0; i < n; i++) { printf("\nIntroduce tu nombre: "); gets(nombre); printf("Bienvenido a C, %s",nombre); } getch(); } Me equivoque es que ya era muy tarde por aca, me estaba durmiendo...
|
|
|
|
|
En línea
|
|
|
|
Fletch
Desconectado
Mensajes: 5
|
A er, en el primero hazlo así: #include <stdio.h> #include <conio.h>
int main() { char oracion[81]; char *p; int i; printf("Escribe un numero entero: "); scanf("%i",&i); printf( "Escribe una oracion:\n"); p=gets(oracion); printf( "\nHas escrito: \"%s\"\n", oracion ); getch();
return 0; } Saludos! Probe este programa con el Dev-C++, y realiza la misma accion de saltarse el gets() poseterior al scanf(). Gracias por su ayuda
|
|
|
|
|
En línea
|
|
|
|
Cab Calloway
Colaborador
Desconectado
Mensajes: 4.262
|
Si es cierto, ahora k lo pienso, :S:S k kilombo...
Respecto al segundo... por k pones "main()" en vez de "int main()"??
Saludos!
|
|
|
|
« Última modificación: 16 Septiembre 2005, 23:12 por kasswed »
|
En línea
|
Se busca gato.
|
|
|
Cab Calloway
Colaborador
Desconectado
Mensajes: 4.262
|
A ver, y en el primer ejemplo, limpia el buffer de entrada con fflush(stdin)#include <stdio.h> #include <conio.h>
int main() { char oracion[81]; int i; printf("Escribe un numero entero: "); fflush(stdin); scanf("%i",&i); printf( "Escribe una oracion:\n"); fflush(stdin); gets(oracion); printf( "\nHas escrito: \"%s\"\n", oracion ); getch();
return 0; } Saludos!
|
|
|
|
« Última modificación: 16 Septiembre 2005, 23:13 por kasswed »
|
En línea
|
Se busca gato.
|
|
|
Fletch
Desconectado
Mensajes: 5
|
lo del main() fue por error se me olvido que tipo de variable regresa, pero si se lo pondre, gracias por la sugerencia, y probare usando el fflush(stdin) a ver que pasa, gracias a todos por sus observaciones.
Saludos
|
|
|
|
|
En línea
|
|
|
|
Fletch
Desconectado
Mensajes: 5
|
Bueno he probado ambos codigos el que contiene el ciclo for y el que no lo tiene ambos usando el gets() para introducir una cadena de caracteres y funcionan bien anteponiendo el fflush(stdin).
Gracias por la ayuda.
Una pregunta mas solo queria saber por que se salta un gets() si no utilizamos el fflush()
Gracias Saludos
|
|
|
|
|
En línea
|
|
|
|
Cab Calloway
Colaborador
Desconectado
Mensajes: 4.262
|
Pues porque al no limpiar el buffer de entrada de datos con fflush, se lo salta xD.
Si alguien experto puede dar una respuesta más científica sería agradecido.
Saludos!
|
|
|
|
|
En línea
|
Se busca gato.
|
|
|
|
Páginas: 1 [2]
|
|
|
|