Dev-C: Como grabo un arreglo de Objetos en un Fichero?

Seguir
  • Seguir de forma pública
  • Seguir de forma anónima
  • Dejar de seguir
Necesito realizar un programa en Dev-C++ que sea capas de funcionar similar a una base de datos, como tener una tabla de clientes, la misma a la que se le pueda crear, borrar, editar ...mostrar más
Mejor respuestaElección del que hace la pregunta
Mira, esto te puede ayudar:
Cuando busques, busca como utilizar la funcion fopen y fprintf, no solo en Dev-C++ ya que este es solo un compilador de C. Busca como abrir archivos, guardar estructuras de datos en C.
Igual, por si no encuentras informacion, a continuacion te anexo algo que te puede servir


Funciones de Libreria para la Entrada y Salida (E/S) de Archivos
Existen rutinas para abrir y cerrar archivos, y para leer y escribir en ellos utilizando datos formateados, de manera similar a como se hace el formato de datos para entrada y salida en pantalla.

La función fopen se utiliza para abir un archivo, y asociarle una variable apuntador a archivo con la cual el programa puede referirse a la fuente del archivo. El prototipo de fopen es:

FILE *fopen(const char *filename, const char *modo);

fopen retorna un apundador al archivo si la llamada fue exitosa, y sino, retorna NULL. El apundador al archivo se utiliza para indentificar la fuente del mismo, se pasa como parámetro a las rutinas de escritura, lectura y manejo del archivo. El filename y modo son cadenas de caracteres. Los modos válidos son:

Modo Uso
r Abre para lectura
w Abre o crea para escritura. Descarta (destruye) cualquier contenido previo
a Abre o crea para escritura. Agrega a (escribe despues de) cualquier contenido previo
r+ Abre para modificaciones (lectura y escritura)
w+ Abre o crea para modificacion. Descarta (destruye) cualquier contenido previo
a+ Abre o crea para modificacion. Agrega a cualquier contenido previo

Para declarar una variable de tipo apuntador a archivo:

#include <stdlib.h>

FILE *fp;

Ejemplo de apertura de un archivo:

fp = fopen("datos.txt","w");

La funcion fflush se usa para fÍsicamente escribir (bajar) en el archivo cualquier data almacenada en el "buffer" intermedio. Para hacer los programas mas eficientes y reducir las llamadas aL sistema, los archivos mantienen un buffer (memoria) intermedia, una vez que el buffer esta lleno, los datos se escriben en el archivo. La rutina fflush fuerza a que el buffer sea escrito en el archivo asociado. Su prototipo es:

int fflush(FILE *fp);

Recibe un apuntador a archivo como parámetro. Retorna cero si la llamada fue exitosa y EOF si no lo fue. EOF es una constante especial que denota que se ha llegado al final del archivo.

Para cerrar los archivos se utiliza la funcion fclose. Su prototipo es:

int fclose(FILE *fp);

Fclose retorna cero si fue exitosa y EOF si hubo alguna falla.

Para escribir datos en un archivo se utiliza la fprintf. Esta función es muy similar a printf, que ya sabemos manejar bien. La única diferencia es que fprintf tiene un argumento adicional, el apundador a archivo que especifica la fuente donde queremos escribir. Su prototipo es:

int fprintf(FILE *fp, const char* format, ....);

fprintf retorna el número de caracteres que fueron escritos exitosamente o un número negativo en caso de falla.

Para leer datos de un archivo se utiliza la función fscanf. Esta función es muy similar a scanf, que ya sabemos manejar bien. La única diferencia es que fscanf tiene un argumento adicional, el apundador a archivo que especifica la fuente de donde queremos leer. Recuerden que los argumentos para guardar datos deben ser apuntadores (i.e, llevan & en caso de ser variables simples, y solo el nombre en caso de ser arreglos de caracteres). Su prototipo es:

int fscanf(FILE *stream, const char* format, ....);

Ejemplo
El siguiente programa abre un archivo que contiene un nombre y cedula de indentidad. Luego abre un archivo de salida y escribe estos datos (pero en orden invertido). El archivo de entrada fue creado con un editor de texto.

Archivo de entrada: entrada.txt

Pedro 18878798

#include <stdio.h>

int main()
{
char ifilename[] = "entrada.txt";
char ofilename[] = "salida.txt";
char name[30];
int idNum;

FILE *ofp, *ifp; /* Declara apuntadores a archivo */
ifp = fopen(ifilename,"r"); /* Abre archivo de entrada */
fscanf(ifp,"%s %d",name,&idNum); /* Lee datos de entrada */
ofp = fopen(ofilename,"w"); /* Abre archivo de salida */
fprintf(ofp,"%d %s\n",idNum, name); /* Escribe los datos */
fclose(ifp); fclose(ofp); /* Cierra los archivos */
return 0;
}
Archivo de salida: salida.txt
18878798 Pedro

Source:

Clasificación y comentario del que hace la pregunta

5 de 5
Gracias men puedes mandarme mas informacion,
samper88ec@yahoo.com
  • 1
  • Comentario
Sign In 

para añadir tu respuesta

No hay más respuestas

¿Quién sigue esta pregunta?

    %
    MEJORES RESPUESTAS
    Miembro desde el:
    Puntos: Puntos: Nivel
    Número total de respuestas:
    Puntos de esta semana:
    Seguir
     
    Dejar de seguir
     
    Bloquear
     
    Desbloquear