I am working on making a program that reads characters as input and then outputs them to a file specified by the user. I thought that it's working but now it will not compile. Here's the code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
int c = 0;
char FileName[100] = "";
FILE *fp;
printf("Please input the title of the file you're interested in: ");
scanf("%100s", FileName);
fp = fopen(FileName, "w");
if (fp == NULL)
{
perror(NULL);
exit(0);
}
printf("Please input what you want in your file \n(Press Ctrl+Shift+A to
end the program):");
for (c = getchar(); c != 1; c = getchar())
{
if (c == '\n')
printf("");
fputc(c, fp);
}
if (c == 1);
{
printf("\nCtrl+Shift+A is a correct ending.\n\n");
}
fclose(fp);
}
In my attempts to figure out the problem, I've found that the trouble arises at FILE *fp and fopen. When references to files are commented out, the code at least compiles. My output is telling me to use fopen_s() but I'm not sure how that function works or if my current code would work with it given that it won't work for fopen(). I am using Microsoft Visual Studio if that helps. I don't get an error message, but here's what comes into the output:
1>------ Build started: Project: Project1, Configuration: Debug Win32 ------
1>Exercise2.c
1>c:\users\djmcn\documents\visual studio 2017\projects\1.9\exercise2.c(18):
error C4996: 'scanf': This function or variable may be unsafe. Consider
using scanf_s instead. To disable deprecation, use
_CRT_SECURE_NO_WARNINGS. See online help for details.
1>c:\program files (x86)\windows
kits\10\include\10.0.16299.0\ucrt\stdio.h(1272): note: see declaration of
'scanf'
1>c:\users\djmcn\documents\visual studio 2017\projects\1.9\exercise2.c(20):
error C4996: 'fopen': This function or variable may be unsafe. Consider
using fopen_s instead. To disable deprecation, use
_CRT_SECURE_NO_WARNINGS. See online help for details.
1>c:\program files (x86)\windows
kits\10\include\10.0.16299.0\ucrt\stdio.h(207): note: see declaration of
'fopen'
1>Done building project "Project1.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========