Páginas: [1]
|
 |
|
Autor
|
Tema: problema al crear ficheros (Leído 393 veces)
|
Proxy Lainux
Desconectado
Mensajes: 142
|
hola una pregunta... al seguir estudiando de diferente manuales que hay en la red... en uno me ponene un ejemplo de como crear ficheros... yo lo hago de esta forma int main() { FILE *f; f=fopen("hola.txt","a"); fprintf("Hola Mundo"); fclose(f); return 0; } pero en el manual viene de esta forma #include <stdio.h> typedef struct{ char c1; int c2; char c3[20]; float c4; }registro; int main() { char opcion; registro reg; FILE *f; f=fopen("datos.dat","a"); do{ printf("c1 (char): "); scanf("%c",®.c1); fflush(stdin); printf("c2 (int): "); scanf("%d",®.c2); fflush(stdin); printf("c3 (string): "); scanf("%s",®.c3); fflush(stdin); printf("c4 (float): "); scanf("%f",®.c4); fflush(stdin); fwrite(®,sizeof(registro),1,f); printf("Otro ( s o n): "); scanf("%c",&opcion); fflush(stdin); } while(opcion!='n'); fclose(f); } y cuando lo ejecuto.. escribo lo que me pide.. pero me parecen solo simbolos... %#"%2%b$#"%$#"bgfdhgt453&%$&#&%3 porke pasa eso?.. alguien sabe? espero su respuesta gracias...  --EDITADO... perdon lo koloke mal
|
|
|
|
« Última modificación: 29 Marzo 2008, 23:35 por Proxy Lainux »
|
En línea
|
|
|
|
|
|
Proxy Lainux
Desconectado
Mensajes: 142
|
la que no me funciona es la de abajo... #include <stdio.h>
typedef struct{ char c1; int c2; char c3[20]; float c4; }registro;
int main() { char opcion; registro reg; FILE *f;
f=fopen("datos.dat","a");
do{
printf("c1 (char): "); scanf("%c",®.c1); fflush(stdin); printf("c2 (int): "); scanf("%d",®.c2); fflush(stdin); printf("c3 (string): "); scanf("%s",®.c3); fflush(stdin); printf("c4 (float): "); scanf("%f",®.c4); fflush(stdin); fwrite(®,sizeof(registro),1,f); printf("Otro ( s o n): "); scanf("%c",&opcion); fflush(stdin); } while(opcion!='n'); fclose(f); }
|
|
|
|
|
En línea
|
|
|
|
Ferсhu
Desconectado
Mensajes: 1.221
Menos palabras y Mas codigos.
|
 f=fopen("datos.dat","rb"); ZeroMemory(®,sizeof(registro)); fread(®,sizeof(registro),1,f); printf("%c\n",reg.c1); printf("%d\n",reg.c2); printf("%s\n",reg.c3); printf("%f\n",reg.c4);
Si q funciona  probalo.
|
|
|
|
|
En línea
|
|
|
|
Proxy Lainux
Desconectado
Mensajes: 142
|
duuhh..  pues si.. que tonto soy... se me habia olvidado que lo mismo me pasaba con visual basic, pero al leer el archivo todo me aparecia normal... jeje, perdon... bueno, gracias por la ayuda... 
|
|
|
|
|
En línea
|
|
|
|
|
ghastlyX
|
Por cierto, no utilices fflush para stdin. Un saludo de ghastlyX 
|
|
|
|
|
En línea
|
|
|
|
sch3m4
Colaborador
Desconectado
Mensajes: 1.534
Nihil est in intelectu quod prius not fuerit insen
|
Buenas =) Por cierto, no utilices fflush para stdin. Un saludo de ghastlyX  Por qué lo dices?
|
|
|
|
|
En línea
|
|
|
|
|
ghastlyX
|
No está definido el comportamiento de fflush para stdin, por lo que se recomienda no utilizarlo. Si stream apunta a un stream de salida o de actualización cuya operación más reciente no era de entrada, la función fflush envía cualquier dato aún sin escribir al entorno local o a ser escrito en el fichero; si no, entonces el comportamiento no está definido. Si stream es un puntero nulo, la función fflush realiza el despeje para todos los streams cuyo comportamiento está descrito anteriormente. Fuente: http://www.conclase.net/c/librerias/funcion.php?fun=fflushUn saludo de ghastlyX 
|
|
|
|
|
En línea
|
|
|
|
Ferсhu
Desconectado
Mensajes: 1.221
Menos palabras y Mas codigos.
|
Por cierto, no utilices fflush para stdin.
Yo soy de los q dice, si funciona y obtenemos lo q keriamos, por q no usarlo? jaja
|
|
|
|
|
En línea
|
|
|
|
|
ghastlyX
|
Porque hay otras maneras de conseguir lo mismo estando seguros al 100% de que va a funcionar. Un saludo de ghastlyX 
|
|
|
|
|
En línea
|
|
|
|
Proxy Lainux
Desconectado
Mensajes: 142
|
solamente keria decir que kuando kito fflush(stdin)... me aparece asi cuando ejecuto el programa
opcion(char):hola ---> cuando le doy enter... asi me aparece... opcion(int): opcion(string): opcion(float):
|
|
|
|
|
En línea
|
|
|
|
|
Karman
|
hay demasiados theads que hablan de fflush... tómate el trabajo de buscar el en foro y encontrarás la solución...
S2
|
|
|
|
|
En línea
|
|
|
|
Proxy Lainux
Desconectado
Mensajes: 142
|
hola
pero no hice ninguna pregunta.... solo comente que kuando volvi a hacer el ejercicio y kite fflush para ver que pasaba... me aparecio de esa forma el programa... pero no fue pregunta, solo comentario....
nos vemos
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1]
|
|
|
|