Crear y escribir cosas en un archivo en C?

Iniciado por palacio29, 12 Septiembre 2016, 01:04 AM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

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.

#include <stdio.h>
#include <stdlib.h>
#define N 5
struct s_datos
{
    int doc;
    char nombre[50];
    char pais[70];
};
typedef struct s_datos t_dato;


int main()
{
    FILE*arch=NULL;
    int i=0;
    char letraa,letrab;
    t_dato persona[N];
    arch=fopen("C:\\Users\\PC\\Desktop\\datos.txt","w");
    if(arch==NULL)
        return 0;
    for(i=0;i<N;i++)
    {
        printf ("Ingrese el numero de documento: ");
        scanf("%d",&(persona[i].doc));
        letraa=getchar();
        printf ("Ingrese el nombre: \n");
        gets(persona[i].nombre);
        printf ("Ingrese nacionalidad: \n");
        gets(persona[i].pais);
        letrab=getchar();
        fprintf(arch,"%d,%s,%s\n",persona[i].doc,persona[i].nombre,persona[i].pais);
        printf ("Llegue");
    }

fclose(arch);
    return 0;
}

ivancea96

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.