Форум программистов, компьютерный форум CyberForum.ru

Файл создается не по указанному пути, если путь к нему - относительный - C++

Восстановить пароль Регистрация
 
Егор Рязанцев
 Аватар для Егор Рязанцев
0 / 0 / 0
Регистрация: 28.05.2014
Сообщений: 12
15.07.2014, 18:22     Файл создается не по указанному пути, если путь к нему - относительный #1
Доброе время суток.
Пытаюсь создать файл и кое-что в него записать с помощью fopen_s:
C++
1
2
FILE* out;
fopen_s(&out, "test.txt", "wt");
Но файл не создавался. Но потом неожиданно я обнаружил искомый файл там, где его не должно было быть.
Каталог проекта:
"C:\Users\viktor\Desktop\Егор\Проект\SkinMaster\SkinMaster"
Каталог, где был найден файл:
C:\Users\viktor\Downloads
Почему так происходит, и как это решить?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 18:22     Файл создается не по указанному пути, если путь к нему - относительный
Посмотрите здесь:

C++ HANDLE файла зная путь к нему
C++ Вставка переменной(хранящей часть пути) в путь до файла...
Дано целое число. Если оно является нечетным положительным, то прибавить к нему 1, если отрицательным, то вычесть 2, если нулевым, то заменить на 10 C++
запись в файл. не создается файл C++
C++ Вывод в файл из командной строки по указанному в ней пути
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
15.07.2014, 18:34     Файл создается не по указанному пути, если путь к нему - относительный #2
Егор Рязанцев, странно конечно. Может всё из-за того что в пути директории на кирилице (...\Егор\Проект\...).
Попробуйте как вариант:
C++
1
2
3
std::ofstream out("test.txt");
out << "Hello World!";
out.close();
Убежденный
Системный программист
 Аватар для Убежденный
14208 / 6223 / 987
Регистрация: 02.05.2013
Сообщений: 10,368
Завершенные тесты: 1
15.07.2014, 19:03     Файл создается не по указанному пути, если путь к нему - относительный #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Егор Рязанцев Посмотреть сообщение
Почему так происходит
Потому что если не указать полный путь к файлу, он будет создаваться в
текущей директории. А текущая директория может отличаться от той,
где находится exe-файл. Ну вот например, открываю консоль (cmd.exe),
ввожу команду
Код
cd /d D:\Programs
После этого текущая директория будет D:\Programs.
Если теперь запустить файл с диска C так
Код
C:\prog.exe
То его текущая директория будет D:\Programs.
А сам exe лежит в корне диска C. И файл, указанный без абсолютного пути,
этот exe будет создавать тоже в "D:\Programs", а не в "C:\".
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
15.07.2014, 19:24     Файл создается не по указанному пути, если путь к нему - относительный #4
Убежденный, разве в текущем для *.exe файла не подразумевается директория в которой он находится?
Убежденный
Системный программист
 Аватар для Убежденный
14208 / 6223 / 987
Регистрация: 02.05.2013
Сообщений: 10,368
Завершенные тесты: 1
15.07.2014, 19:38     Файл создается не по указанному пути, если путь к нему - относительный #5
При запуске процесса он наследует текущую директорию своего родителя,
то есть, процесса, который его запустил. Если в параметрах CreateProcess
явно не указано иное.
Yandex
Объявления
15.07.2014, 19:38     Файл создается не по указанному пути, если путь к нему - относительный
Ответ Создать тему
Опции темы

Текущее время: 23:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru