如何创建一个文件并同时给它命名
问题描述:
我遇到了这个C代码的问题。我正在创建一个文件,我想在同一时间给它一个名称。但有些东西不起作用 - 它不会以所选名称创建该文件。其余代码工作得很好顺便说一句。如何创建一个文件并同时给它命名
FILE *InputRef;
char outputFilename[]; // Creates a char
printf("Enter the name of your file"); // It asks for a name
outputFilename=getchar(); // And here I want to enter the file name
InputRef = fopen(outputFilename, "w"); //
答
所以我想通了上面的代码出了什么问题。获取文件名时,应该使用gets()而不是fgets()。
因此,而不是写:
fgets(outputFilename, MAXVAL, stdin);
应该写:
gets(outputFilename);
答
。在你的代码中的错误,该数组宣言应包含像炭outputFilename [36]和的getchar(数组的大小)被用于读取只有一个字符,尝试使用被(outputFileName)
答
#include <stdio.h>
#define MAXVAL 100
void main()
{
FILE *InputRef;
char outputFilename[MAXVAL];
printf("Enter the name of your file");
fgets(outputFilename, MAXVAL, stdin);
InputRef = fopen(outputFilename, "w")) ;
}
嗨anudeepks,我想你的代码,它似乎直到最后一行,在那里acctually尝试打开工作/创建文件。阅读“char outputFilename”似乎存在一些问题你知道为什么吗? –
当我运行程序时,我可以打印出我写的东西(文件名)。但是fopen命令仍然无法打开,并以我输入的名称创建文件。 –
虽然这段代码可能会解决这个问题,但为了让这个答案对未来的读者有价值,几个解释词将会很长的路要走。 – Thom