Hello,
I am teaching myself C, and am having difficulty writing to a user-specified file. In the code below, fopen keeps returning a null file pointer. When the file location is physically written in the code, however, the program works as expected. My question has two parts:
1) Why does fopen return a null pointer?
2) What should I change to make the program accept user-specified input files?
I have not been able to find an answer to these questions in my C book or through online searches.
Note: The code is written and compiled in Microsoft Visual C++ 2008, if that makes a difference.
Code:
#define _CRT_SECURE_NO_WARNINGS
#define MAX_FILE 100
#define MAX_TEXT 50
#include <stdio.h>
int main()
{
char file_location[MAX_FILE];
char text[MAX_TEXT];
FILE *myfile;
printf("Enter file location: ");
fgets(file_location, MAX_FILE, stdin);
myfile = fopen(file_location,"w");
//myfile = fopen("c:/c test files/test.txt","w"); //PROGRAM WORKS IN THIS CASE
if (myfile != NULL)
{
printf("Enter your text: ");
fgets(text, MAX_TEXT, stdin);
fprintf(myfile, text);
}
else
{
printf("INVALID FILE PATH.\n");
return 0;
}
fclose(myfile);
return 0;
}
Thank you for any assistance.