我試圖打開位於不同目錄中的文件,但我總是收到錯誤消息。我的代碼如下所示:如何在不同的位置打開文件?
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *file;
char file_name[25];
printf("What file do you want? ");
scanf("%s", file_name);
file = fopen("Dir1/Dir2/file_name","r");
if(file == NULL)
{
printf("There is no file by that name\n");
exit;
}
我懷疑問題是由於「fopen」部分。如果我輸入文件名(例如file = fopen(「Dir1/Dir2/list.txt」,「r」),那麼它將起作用。但是,我希望用戶輸入文件名。任何幫助將不勝感激!謝謝
您與用戶輸入打交道時作出非常根本的錯誤:如果你不知道你可以用'fgets()'而不是'scanf()'來實現,或者你可以使用一個安全的'scanf '格式字符串,例如'%24s'。 – glglgl
注意:文件名可能包含空格。'scanf(「%s」,file_name)'不會掃描那些到'file_name'。考慮'scanf(「%24 [\^n]」,file_name)'或'fgets()'。 – chux