Я пытаюсь открыть файл, который находится в другом каталоге, но я всегда получаю сообщение об ошибке. Мой код выглядит так:Как открыть файл в другом месте?
#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». Если я набираю имя файла (например, файл = fopen («Dir1/Dir2/list.txt», «r»), тогда он будет работать. Однако я хочу, чтобы пользователь вводил имя файла. .! Благодаря
вы делаете очень фундаментальную ошибку при работе с пользовательского ввода: Если вы не знаете, Вы можете сделать это с помощью 'fgets()' вместо 'scanf()', или вы можете использовать безопасный 'scanf(), если вы не знаете, что он делает (и вы никогда не знаете, что делает пользователь). 'format string, например'% 24s'. – glglgl
Примечание: имена файлов могут содержать пробелы. 'scanf ("% s ", имя_файла)' не будет сканировать их в к 'file_name'. Рассмотрим 'scanf ("% 24 [\^n] ", имя_файла)' или 'fgets()'. – chux