C/Visual C - fichero a lista y de lista a fichero

 
Vista:

fichero a lista y de lista a fichero

Publicado por Monica (2 intervenciones) el 21/05/2003 00:54:43
Quisiera saber como pasar informacion contenida en un fichero a una lista enlazada y luego volvar la informacion de la lista enlazada al fichero.
Si me ponen el codigo exacto se lo agradeceria mucho tambien.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:fichero a lista y de lista a fichero

Publicado por [email protected] (5 intervenciones) el 24/05/2003 13:35:33
No se si te valdrá o no. El programilla este lo que hace es que primero crea una lista con los numeros 1, 2, 3 y 4. Luego mete la lista en un fichero. Y por último se muestra el fichero.

Ahí te va el código:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

void main(void) {
struct elementos {
int num;
struct elementos *psig;
} elem;
struct elementos *lista, *aux;
FILE *ptf;
int cont, numeros[4] = {1,2,3,4};

//CREO LA LISTA
lista = (struct elementos *) malloc(sizeof(struct elementos));
aux = lista;
aux->num = numeros[0];
aux->psig = NULL;

for(cont=1 ; cont<4 ; cont++) {
aux->psig = (struct elementos *) malloc(sizeof(struct elementos));
aux = aux->psig;
aux->num = numeros[cont];
aux->psig = NULL;
}

//METO LA LISTA EN EL FICHERO.
ptf = fopen("FICHERO.txt","w");
aux = lista;
for(cont=0 ; cont<4 ; cont++) {
elem.num = aux->num;
aux = aux->psig;
fwrite(&elem, sizeof(struct elementos), 1, ptf);
}
fclose(ptf);

//MUESTRO EL FICHERO.
ptf = fopen("FICHERO.txt","r");
clrscr();
for(cont=0 ; cont<4 ; cont++) {
fread(&elem, sizeof(struct elementos), 1, ptf);
printf("\n\n DEBERIA SER UN %d: %d",cont+1,elem.num);
}
fclose(ptf);
getch();
}

Espero haberte sido de ayuda. ;-P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El codigo anterior está mal

Publicado por SOFT_WE (5 intervenciones) el 24/05/2003 13:40:59
Aqui te mando el código correcto. No se porque, pero al hacer el corta pega algunos caracteres no han salido bien.

Ahí te va el código otra vez:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

void main(void) {
struct elementos {
int num;
struct elementos *psig;
} elem;
struct elementos *lista, *aux;
FILE *ptf;
int cont, numeros[4] = {1,2,3,4};

//CREO LA LISTA
lista = (struct elementos *) malloc(sizeof(struct elementos));
aux = lista;
aux->num = numeros[0];
aux->psig = NULL;

for(cont=1 ; cont<4 ; cont++) {
aux->psig = (struct elementos *) malloc(sizeof(struct elementos));
aux = aux->psig;
aux->num = numeros[cont];
aux->psig = NULL;
}

//METO LA LISTA EN EL FICHERO.
ptf = fopen("FICHERO.txt","w");
aux = lista;
for(cont=0 ; cont<4 ; cont++) {
elem.num = aux->num;
aux = aux->psig;
fwrite(&elem, sizeof(struct elementos), 1, ptf);
}
fclose(ptf);

//MUESTRO EL FICHERO.
ptf = fopen("FICHERO.txt","r");
clrscr();
for(cont=0 ; cont<4 ; cont++) {
fread(&elem, sizeof(struct elementos), 1, ptf);
printf("\n\n DEBERIA SER UN %d: %d",cont+1,elem.num);
}
fclose(ptf);
getch();
}

A ver si te funciona ;-P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar