2015-04-30 48 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

相關問題