Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / fopen требует указания полного пути к файлу? / 13 сообщений из 13, страница 1 из 1
11.12.2016, 16:51
    #39364429
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
Почему если указано просто имя файла, например "input.txt" лежащего в одной директории с exe - fopen его не видит.
А если полный путь от корня диска C - то все ок.
Это фича C++?


Код: plaintext
1.
	FILE *f = fopen(filename, "r"); 
...
Рейтинг: 0 / 0
11.12.2016, 17:24
    #39364442
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
Eolt,

это фича ОС. текущий путь (где ищется input.txt) не обязан совпадать с путём к exe
...
Рейтинг: 0 / 0
12.12.2016, 19:34
    #39365222
alexy_black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
нужно вывести на экран путь. так можно проверить что идет не так.
вот напрмер http://en.cppreference.com/w/cpp/experimental/fs/current_path
...
Рейтинг: 0 / 0
10.01.2017, 13:30
    #39381439
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
alexy_black http://en.cppreference.com/w/cpp/experimental А где эту либу взять можно?
...
Рейтинг: 0 / 0
10.01.2017, 18:54
    #39381789
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
EoltПочему если указано просто имя файла, например "input.txt" лежащего в одной директории с exe - fopen его не видит.
А если полный путь от корня диска C - то все ок.
Это фича C++?


Код: plaintext
1.
	FILE *f = fopen(filename, "r"); 


ищется по умолчанию в текущей директории, а не в директории где расположен exe
Eclipse юзаешь?
...
Рейтинг: 0 / 0
10.01.2017, 21:07
    #39381877
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
kealon(Ruslan)ищется по умолчанию в текущей директории, а не в директории где расположен exe
Eclipse юзаешь?

Дело было в коде до вызова fopen, он изменял текущую папку.
...
Рейтинг: 0 / 0
10.01.2017, 21:41
    #39381887
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
EoltДело было в коде до вызова fopen, он изменял текущую папку.
текущая папка может изначально не совпадать с папкой бинарника
...
Рейтинг: 0 / 0
10.01.2017, 22:39
    #39381900
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
Eolt,

обычно пригождалась для олимпиад вот такая заготовочка:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#include <cmath>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
void task()
{ }
int main() {
#ifdef deb_task
	freopen("input.txt", "r", stdin);
#endif 
//  body
	int N;
	cin >> N;
	for (int i = 0; i<N ; i++) {
	  task();
	}
	return 0;
} 



дефайн deb_task добавляешь в свойства проекта
...
Рейтинг: 0 / 0
11.01.2017, 07:07
    #39381965
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
Указывать имя файла без пути это опасные грабли.
Поиск сначала идет в текущей папке, затем по путям указанным в SET PATH. В случае если в текущей папке файла не оказалось, но одноименный нашелся где-то в путях, то отлов этого косяка превращается в нетривиальную задачу.
Поэтому лучше сформировать имя с полным путем, чтобы файл искался там где он должен быть.
...
Рейтинг: 0 / 0
11.01.2017, 11:12
    #39382102
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
Dima T,

Про PATH ты нагнал немного, там ищутся только исполняемые файлы
...
Рейтинг: 0 / 0
11.01.2017, 11:15
    #39382107
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
MasterZivDima T,

Про PATH ты нагнал немного, Там ищутся только исполняеме файлы
ну а насчёт граблей всё верно
...
Рейтинг: 0 / 0
11.01.2017, 11:59
    #39382157
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
ИзопропилMasterZivDima T,

Про PATH ты нагнал немного, Там ищутся только исполняеме файлы
ну а насчёт граблей всё верно

Да тоже не самые сложные проблемы, и редко это проблемой оказывается, так как вероятность обнаружения в
других каких-то каталогах файла с нужным именем в общем близка к нулю.
...
Рейтинг: 0 / 0
11.01.2017, 12:02
    #39382161
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fopen требует указания полного пути к файлу?
MasterZivтак как вероятность обнаружения в
других каких-то каталогах файла с нужным именем в общем близка к нулю.
судя по вопросам на форуме проблемой является необнаружение файла
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / fopen требует указания полного пути к файлу? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]