Passing a FILE pointer by reference
Hi!
First the code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#include<stdio.h>
#define file "1.txt"
#define mode "w"
FILE* openfile( FILE *file_pointer ){
file_pointer = fopen( file, mode );
if( file_pointer == NULL )
perror( "error" );
printf( "success" );
return file_pointer;
}
int main(){
FILE *file_pointer;
file_pointer = openfile( file_pointer );
fprintf( file_pointer, "1" );
fclose( file_pointer );
return 0;
}
|
And now a question: How to do the same thing, while passing pointer to FILE (file_pointer) by reference?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include<stdio.h>
#define file "1.txt"
#define mode "w"
void openfile( FILE *& file_pointer ){
file_pointer = fopen( file, mode );
if( file_pointer == NULL )
perror( "error" );
printf( "success" );
}
int main(){
FILE *file_pointer;
openfile( file_pointer );
fprintf( file_pointer, "1" );
fclose( file_pointer );
return 0;
}
|
Thanks.
1 more question: is there any solution for C ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include<stdio.h>
#define file "1.txt"
#define mode "w"
void openfile( FILE ** file_pointer ){
*file_pointer = fopen( file, mode );
if( *file_pointer == NULL )
perror( "error" );
printf( "success" );
}
int main(){
FILE *file_pointer;
openfile( &file_pointer );
fprintf( file_pointer, "1" );
fclose( file_pointer );
return 0;
}
|
Topic archived. No new replies allowed.