Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: palacio29 en 12 Septiembre 2016, 01:04 am



Título: Crear y escribir cosas en un archivo en C?
Publicado por: palacio29 en 12 Septiembre 2016, 01:04 am
Hola

Tengo que hacer un programa en el cual el usuario ingrese el documento, el nombre, y la nacionalidad. Como es una practica de structs, decidi poner las variables en un nuevo tipo de dato. Lo que tengo que hacer es crear un archivo de texto .txt y guardar todo el contenido en ese archivo.
Lo vengo haciendo pero quizas no estoy entendiendo bien del todo la funcion fprintf y al momento de ejecutar el codigo no guarda en el txt.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 5
  4. struct s_datos
  5. {
  6.    int doc;
  7.    char nombre[50];
  8.    char pais[70];
  9. };
  10. typedef struct s_datos t_dato;
  11.  
  12.  
  13. int main()
  14. {
  15.    FILE*arch=NULL;
  16.    int i=0;
  17.    char letraa,letrab;
  18.    t_dato persona[N];
  19.    arch=fopen("C:\\Users\\PC\\Desktop\\datos.txt","w");
  20.    if(arch==NULL)
  21.        return 0;
  22.    for(i=0;i<N;i++)
  23.    {
  24.        printf ("Ingrese el numero de documento: ");
  25.        scanf("%d",&(persona[i].doc));
  26.        letraa=getchar();
  27.        printf ("Ingrese el nombre: \n");
  28.        gets(persona[i].nombre);
  29.        printf ("Ingrese nacionalidad: \n");
  30.        gets(persona[i].pais);
  31.        letrab=getchar();
  32.        fprintf(arch,"%d,%s,%s\n",persona[i].doc,persona[i].nombre,persona[i].pais);
  33.        printf ("Llegue");
  34.    }
  35.  
  36. fclose(arch);
  37.    return 0;
  38. }
  39.  


Título: Re: Crear y escribir cosas en un archivo en C?
Publicado por: ivancea96 en 12 Septiembre 2016, 14:13 pm
Introduciste los 5 conjuntos de valores? Las5 estructuras.
Si solo introduces un par de ellas y cierras el programa, no se escribirá al archivo.

Si quieres forzar a que se escriba al archivo en un momento dado, coloca fflush(archivo).

Por ejemplo, al final del bucle for, dentro.


Si no es ese el problema, asegúrate de que el archivo se crea en un directorio correcto. Si quieres, pon arch=fopen("datos.txt","w"); para que aparezca junto al ejecutable.