2015-04-30 47 views
0

我遇到了这个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"); // 

回答

0

所以我想通了上面的代码出了什么问题。获取文件名时,应该使用gets()而不是fgets()。

因此,而不是写:

fgets(outputFilename, MAXVAL, stdin); 

应该写:

gets(outputFilename); 
0

。在你的代码中的错误,该数组宣言应包含像炭outputFilename [36]和的getchar(数组的大小)被用于读取只有一个字符,尝试使用被(outputFileName)

0
#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")) ; 

} 
+0

嗨anudeepks,我想你的代码,它似乎直到最后一行,在那里acctually尝试打开工作/创建文件。阅读“char outputFilename”似乎存在一些问题你知道为什么吗? –

+0

当我运行程序时,我可以打印出我写的东西(文件名)。但是fopen命令仍然无法打开,并以我输入的名称创建文件。 –

+0

虽然这段代码可能会解决这个问题,但为了让这个答案对未来的读者有价值,几个解释词将会很长的路要走。 – Thom

相关问题