buenas a todos,
mi duda es que tengo que crear un programa donde una de las partes es crear una funcion para abrir un archivo pasandole como parametro de entrada el nombre de archivo y el "r" de read (que ahora no me acuerdo como se llama el parametro) y me devuelva el identificador del archivo.
el problema es que el identificador no me lo devuelve bien, he probado a printearlos dentro de la funcion y en el main y tienen diferente valor.
si printeo el archivo dentro de la funcion me lo hace bien, pero di lo intento fuera de la funcion no. esta claro que esto es por el identificador, que no lo recoge bien el main.
por que puede ser????
os dejo el programa y el archivo a leer:
texto.txt:
12345 jorge gomez
43212 andrea perez
con los campos separados por tabulador
programa:
__________________________________________________________________________
#include <stdlib.h>
#include <stdio.h>
void abrir(char nom[],FILE *fich, char b[]){
char nombre[40],dni[10],apellido[100];
fich=fopen(nom,b);
fscanf (fich, " %[^\t]",dni);
fscanf (fich, " %[^\t]",nombre);
fscanf (fich, " %[^\t]",apellido);
printf("%s %s %s\n",dni,nombre,apellido);
printf(" valor del identificador: %d ------------\n",fich);
}
int main(){
FILE *fichlec,*fichesc;
char nombre[40],apellido[100],dni[10],nom[100],b[]="r";
printf ("introduce el nombre del archivo de lectura");
scanf ("%s",nombre);
abrir(nombre,fichlec, b);
printf("hasta aqui funciona bien\n");
printf("aqui imprimo otro valor de identificador y rompo en el fscanf\n");
printf(" valor del identificador: %d ------------\n",fichlec);
fscanf (fichlec, " %[^\t]",dni);
printf("AAAAAAAAAAAAAAAAAAAA");
fscanf (fichlec, " %[^\t]",nom);
fscanf (fichlec, " %[^\t]",apellido);
printf("%s %s %s",dni,nom,apellido);
system("pause");
}
_______________________________________________________________________
alguna idea de por que puede ser?como tengo que hacer el llamamiento a la funcion para que me lo devuelva bien??
gracacias!!!!
mi duda es que tengo que crear un programa donde una de las partes es crear una funcion para abrir un archivo pasandole como parametro de entrada el nombre de archivo y el "r" de read (que ahora no me acuerdo como se llama el parametro) y me devuelva el identificador del archivo.
el problema es que el identificador no me lo devuelve bien, he probado a printearlos dentro de la funcion y en el main y tienen diferente valor.
si printeo el archivo dentro de la funcion me lo hace bien, pero di lo intento fuera de la funcion no. esta claro que esto es por el identificador, que no lo recoge bien el main.
por que puede ser????
os dejo el programa y el archivo a leer:
texto.txt:
12345 jorge gomez
43212 andrea perez
con los campos separados por tabulador
programa:
__________________________________________________________________________
#include <stdlib.h>
#include <stdio.h>
void abrir(char nom[],FILE *fich, char b[]){
char nombre[40],dni[10],apellido[100];
fich=fopen(nom,b);
fscanf (fich, " %[^\t]",dni);
fscanf (fich, " %[^\t]",nombre);
fscanf (fich, " %[^\t]",apellido);
printf("%s %s %s\n",dni,nombre,apellido);
printf(" valor del identificador: %d ------------\n",fich);
}
int main(){
FILE *fichlec,*fichesc;
char nombre[40],apellido[100],dni[10],nom[100],b[]="r";
printf ("introduce el nombre del archivo de lectura");
scanf ("%s",nombre);
abrir(nombre,fichlec, b);
printf("hasta aqui funciona bien\n");
printf("aqui imprimo otro valor de identificador y rompo en el fscanf\n");
printf(" valor del identificador: %d ------------\n",fichlec);
fscanf (fichlec, " %[^\t]",dni);
printf("AAAAAAAAAAAAAAAAAAAA");
fscanf (fichlec, " %[^\t]",nom);
fscanf (fichlec, " %[^\t]",apellido);
printf("%s %s %s",dni,nom,apellido);
system("pause");
}
_______________________________________________________________________
alguna idea de por que puede ser?como tengo que hacer el llamamiento a la funcion para que me lo devuelva bien??
gracacias!!!!