Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Archivos en C

Estas en el tema de Archivos en C en el foro de C/C++ en Foros del Web. No me funciona la simple apertura de un archivo binario en C, alguien me ayuda, paso el código: quiero cargar una estructurita en el archivo ...
  #1 (permalink)  
Antiguo 21/07/2008, 11:25
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Archivos en C

No me funciona la simple apertura de un archivo binario en C, alguien me ayuda, paso el código: quiero cargar una estructurita en el archivo y luego verla;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct articulo
{
char Nombre[40];
int Nroarticulo;
int Cantidad;
char Rubro[20];
double Importe;
} arti;


FILE*f;
f == fopen("e:archivo1.dat","a");

if (!=f){
puts("ERROR AL ABRIR EL ARCHIVO");
exit(1);
}
//Carga de datos
{
printf("\n Ingrese los datos en el archivo");
printf("Ingrese N para terminar");
int c;
while(c=getch()!='N'){

puts ("Nombre del articulo");
gets (arti.Nombre);
puts ("Numero de articulo");
scanf ("%d",arti.Nroarticulo);
puts ("Cantidad");
scanf ("%d",arti.Cantidad);
puts ("Rubro");
scanf (arti.Rubro);
puts ("Importe");
scanf ("%d",arti.Importe);
printf("Desea cargar otro articulo:S/N");
getch();
return;
}

//Carga del Archivo
fwrite(arti,sizeof(f),1,f);

//Cerrar Archivo
fclose(f);
return 0;
}
//[email protected]
int WtF (FILE *f)
{
//abrirlo para leerlo
f=fopen("archivo1.dat","wb")
if (!f){
puts ("ERROR AL ABRIR EL ARCHIVO");
exit (1);
}
//Impresion del archivo
while not !EOF(f) do{
puts ("Nombre:");
printf ("%s\n",arti.Nombre);
puts ("Rubro");
printf ("%s\n",arti.Rubro);
puts ("Importe");
printf ("%d\n",arti.Importe);
puts ("Numero de articulo");
printf ("%d\n",arti.Nroarticulo);
puts ("Cantidad");
printf ("%d\n",arti.Cantidad);
}
//Cerrar Archivo
fclose(f);

return 0;
}

Gracias.
  #2 (permalink)  
Antiguo 21/07/2008, 11:47
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Respuesta: Archivos en C

La línea de asignación del fichero está mal. Estas poniendo == (que se usa para comparaciones) cuando es = (para asignaciones).

En el if siguiente tienes un error similar: no es "!=f" debes poner "f==NULL" o "!f"

En el nombre del fichero "e:archivo1.dat" es posible que necesites añadir alguna barra para el path. Depende del sistema operativo que las barras sean "/" o "\".

Además si el fichero es binario debes usar el fopen con "b" (binario) y no con "a" (append)
__________________
Grupos de Música
Pop Music Stars
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:00.