2012-03-29 4 views
1

Я создал консольное приложение в VS2010, и я хочу создать файл в текущем каталоге, где работает exe. Я использовал следующий кодfopen не создает файл в текущем каталоге

fp = fopen("Pkts.csv", "w+");

Но файл не получает создан в текущем каталоге и указатель файла не NULL. Но когда я указывает путь, как

fp = fopen("C:\\Windows\\Pkts.csv", "w+");

файл будет создаваться по указанному пути. Как создать файл в текущем каталоге?

+0

Вы используете '.exe' из Visual Studio (используя параметр« Начать отладки »или« Начать без отладки »)? Попробуйте запустить эту вещь из командной строки (или просто дважды щелкните ее напрямую). –

+0

Что значит «где работает exe»? –

+0

Я скопировал exe на другую машину и запустил ее из командной строки – indira

ответ

1

Что такое значение fp при попытке открыть его в текущем каталоге? Если это null, что-то пошло не так. Это может быть проблема с разрешением. Если нет, то вы должны убедиться, что файл не создан где-то еще, записав его в этот файл, а затем попытавшись открыть его снова (возможно, вы смотрите на неправильный каталог и предполагаете, что это рабочий каталог).

+0

Значение fp не равно – indira

0

при запуске .exe из Visual Studio. файл будет создан в корневом каталоге вашего проекта. Попробуйте запустить .exe без Visual Studio

+0

[OP уже попытался запустить его непосредственно из командной строки] (http://stackoverflow.com/questions/9919458/fopen-doesnt-create-file-in -The ток-каталог # comment12660129_9919458). –

+0

Тогда что? Вы могли бы предложить мне дополнительную информацию? –

+0

файл создается, если путь указан правильно. Если мне нравится получать файл, созданный в том же каталоге, где работает exe, его не созданный – indira

Смежные вопросы