Problemas con ficheros en C

Iniciado por Karkass, 27 Diciembre 2013, 10:43 AM

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

Karkass

Buenas, tengo este código, no se si el fallo está en la llamada a los datos o la estructura del código en general, alguien podría echarme una mano?

//BIBLIOTECAS

#include <stdio.h>
#include <fstream>

//DEFINE

#define MAX 50
#define MAX_VECTOR 500

//PROTOTIPOS

void introducir();
void buscar();
void salir();

//ESTRUCTURAS

typedef struct{

       char nombre_trabajador[MAX];
       char apellido_trabajador[MAX];
       char DNI[MAX];
       int horas_trabajadas;  
       float sueldo;    

}Ttrabajadores;

Ttrabajadores trabajador[MAX_VECTOR];

//AQUÍ SE ENCUENTRA EL CÓDIGO DEL MENÚ (NO LO HE PUESTO PORQUE ES EXTENSO)

//FUNCIONES

void introducir(){
   
    //ABRIMOS EL FICHERO
     FILE * pFile;
     pFile = fopen ("bd_trabajadores.txt","a+");
   
    //ESCRIBIRMOS EN EL FICHERO
   
    printf("************* DATOS DEL TRABAJADOR *************\n\n");
   
    printf("Introduce el nombre: \n");
    scanf("%s", trabajador.nombre_trabajador);
   
    printf("Introduce el apellido: \n");
    scanf("%s", trabajador.apellido_trabajador);
   
    printf("Introduce su DNI: \n");
    scanf("%s", trabajador.dni_trabajador);
   
    printf("Introduce las horas que trabaja por semana: \n");
    scanf("%d", trabajador.horas_trabajadas);
     
    //CERRAMOS EL FICHERO
   
     fs.close(pFile);
   
}

Gracias y espero aprender mucho por aquí¡¡¡
La esperanza es la quinta esencia de la debilidad humana.

vangodp


xoker

#2
con scanf no se escribe en un fichero, se escribe con fprintf por ejemplo...

edito: ¿para que sirve fstream? no conozco esa libreria...

rir3760

Es un tema duplicado, ya le están ayudando en su otro tema: Problemas con los ficheros

En cuanto a fstream es parte de la biblioteca estándar de C++.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

xoker

Cita de: rir3760 en 27 Diciembre 2013, 17:35 PM
Es un tema duplicado, ya le están ayudando en su otro tema: Problemas con los ficheros

En cuanto a fstream es parte de la biblioteca estándar de C++.

Un saludo

Entonces ok, dejo el tema en paz, solo una duda, si la biblioteca fstream es parte del la biblioteca stantart de c++ no se podra agregar en un fichero .c cierto? Y esta claro que esta trabajando con C puesto que las otras bibliotecas conservan el .h

Un saludo.

leosansan

Cita de: xoker en 27 Diciembre 2013, 20:56 PM
Entonces ok, dejo el tema en paz, solo una duda, si la biblioteca fstream es parte del la biblioteca stantart de c++ no se podra agregar en un fichero .c cierto? Y esta claro que esta trabajando con C puesto que las otras bibliotecas conservan el .h

Aunque no lo parezca por las librerías .h y el uso de printf y scanf, más propios del C, la inclusión de la librería <fstream> pone de manifiesto que trabaja en C++, ya que no existe la correspondiente librería <fstream.h> en C.

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!






Karkass

Gracias¡¡¡¡¡, ya lo solucioné¡¡¡

void introducir(void){
     
     //VARIABLES
     
     int i;
     
     //ABRIMOS EL FICHERO
      FILE * pFile;
      pFile = fopen ("bd_trabajadores.txt","a+");
     
     //ESCRIBIMOS EN EL FICHERO
     
     printf("\n\n\n************* DATOS DEL TRABAJADOR *************\n\n");
     
     for(i=0;i<1;i++){
     
     printf("Introduce el nombre: \n");
     scanf("%s", trabajador.nombre_trabajador);
     fwrite (trabajador.nombre_trabajador , sizeof(char), sizeof(trabajador.nombre_trabajador), pFile);

}

No me había dado cuenta de un par de cosas jajajajaja, ahora a seguir¡¡¡  :rolleyes: :rolleyes:
La esperanza es la quinta esencia de la debilidad humana.