Re: passing FILE pointers
Dave Cullen wrote:
I'm having trouble figuring out how to pass a FILE pointer to my
functions. I want to open a file with one function, read data with
another, write data with another. Here's a simple example:
void openfile(FILE* fp)
{
fp = fopen("C:\\test.txt","r+");
If you intend to keep the value your function obtained, you need to
either pass the pointer by reference, by pointer, or return it as the
return value.
}
void getdata(FILE* fp)
{
char buffer[255];
fgets(buffer,254,fp);
That should work just fine.
}
int main(void)
{
FILE f;
'f' should be declared 'FILE*', not 'FILE'.
openfile(&f);
getdata(&f);
fclose(&f);
return 0;
}
The program compiles and runs but "f" in main() is not real and no
data gets read in getdata(). What am I missing?
You're missing the fact that in 'openfile' you're changing the value of
the local object, and 'main' will never see it change.
What book are you reading that doesn't explain FILE-based I/O?
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask