Passing char * into fopen with C.

Posted by Rhys on Stack Overflow See other posts from Stack Overflow or by Rhys
Published on 2010-03-19T02:51:29Z Indexed on 2010/03/19 3:01 UTC
Read the original article Hit count: 464

Filed under:
|
|
|

Hey there,

I'm writing a program that passes data from a file into an array, but I'm having trouble with fopen (). It seems to work fine when I hardcode the file path into the parameters (eg fopen ("data/1.dat", "r");) but when I pass it as a pointer, it returns NULL.

Note that line 142 will print "data/1.dat" if entered from command line so parse_args () appears to be working.

132 int
133 main(int argc, char **argv)
134 {
135   FILE *in_file;
136   int *nextItem = (int *) malloc (sizeof (int));
137   set_t *dictionary;
138
139   /* Parse Arguments */
140   clo_t *iopts = parse_args(argc, argv);
141
142   printf ("INPUT FILE: %s.\n", iopts->input_file); /* This prints correct path */
143   /* Initialise dictionary */
144     dictionary = set_create (SET_INITAL_SIZE);
145
146   /* Use fscanf to read all data values into new set_t */
147   if ((in_file = fopen (iopts->input_file, "r")) == NULL)
148   {
149     printf ("File not found...\n");
150     return 0;
151   }

Thanks! Rhys

© Stack Overflow or respective owner

Related posts about c

    Related posts about fopen