При чтении файла в C должен ли файл находиться в той же папке, что и программа? И если да, есть ли способ прочитать файл в другой папке? - PullRequest
1 голос
/ 30 апреля 2020

Это часть моей программы

        printf("file name?\n");
        scanf("%s", name);
        ptr = fopen(name, "r");
        if(ptr == NULL){
        printf("error opening the file\n");
        }

Это всегда говорит об ошибке. Любой способ решить это? Спасибо

1 Ответ

1 голос
/ 30 апреля 2020

При чтении файла в C должен ли файл находиться в той же папке, что и программа?

Нет, нет.

А если так, есть ли способ прочитать файл в другой папке?

Вам необходимо указать путь к файлу - либо абсолютный, либо относительно текущего рабочего каталога. Указанный c формат пути зависит от используемой вами ОС, и его значение, конечно, зависит от структуры вашей файловой системы.

Однако в вашем случае ошибка возникает из-за того, что вы пытаетесь открыть файл этого не существует. Если вы открываете файл для чтения, то есть если вы используете "r" во втором параметре fopen(), файл должен существовать до его открытия - он не будет создан системой, как если бы вы использовали "w" или "a". См. Описание функции fopen() в C стандарт здесь :

r                     open text file for reading
w                     truncate to zero length or create text file for writing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...