fopen и окна - PullRequest
       40

fopen и окна

4 голосов
/ 30 января 2012

Это первый раз, когда я пишу код C в Windows, и странная ошибка сводит меня с ума.

Я пытаюсь открыть файл .txt с помощью fopen, и он продолжает выдавать мне ошибку «файл не существует» (он также однажды выдал мне ошибку «нет разрешения»).

Мой код выглядит следующим образом (проще простого):

FILE *file;

if((file=fopen("C:\\Users\\ste\\Desktop\\file.txt", "r"))==NULL) 
{
    printf("Cannot open file.\n");
    puts(strerror(errno));

    getchar();
    exit(1);
}

Я что-то здесь упускаю?Заранее спасибо!

Ответы [ 3 ]

16 голосов
/ 31 января 2012

Могу поспорить, у вас включена функция Windows «скрыть расширения» ошибка .Таким образом, файл, который на самом деле называется «file.txt», отображается в проводнике как «файл».И если в проводнике он выглядит как «file.txt», на жестком диске его нужно будет назвать «file.txt.txt».

1 голос
/ 30 января 2012

Код сам по себе хорош, если предположить, что он делает то, что вам нужно.

«r» требует, чтобы файл уже существовал (он не будет создан для вас), поэтому вам нужно убедиться, что путь указан правильно. Правильный ли путь к рабочему столу, а не на другом диске и т. Д.?

Ошибка разрешения может возникнуть, если она была выполнена пользователем, отличным от «ste», или, конечно, если что-то изменило разрешения для этого пути к файлу, как запретить доступ.

0 голосов
/ 07 февраля 2015

Я использую Windows 7. Когда я запускаю пример программы из IDE (например, CTRL + F10 в Code :: Blocks), ни одна из них не работает - с расширением файла или без него (например, «file» или «file.txt»).

Однако, если я запускаю скомпилированную программу из консоли (не имеет отношения к IDE) , она работает независимо от того, имеет ли расширение файл.

...