Вы также можете использовать относительные пути.Но они относятся к среде, из которой вы называете свой исполняемый файл.
Это зависит от ОС, но все основные системы ведут себя более или менее одинаково.
Пример Windows:
// File structure:
c:\folder\myprogram.exe
c:\myfile.txt
// Calling command from folder
c:\folder > myprogram.exe
В приведенном выше примере вы можете получить доступ к myfile.txt с помощью «c: /myfile.txt» или «../myfile.txt».Если myprogram.exe вызывается из корня c:\
, будет работать только абсолютный путь, но вместо этого будет работать «myfile.txt».
Как сказал Роб Кеннеди в комментариях, в действительности нет ничего особенного в путях, касающихся fstream,Но вот пример кода с использованием относительного пути:
#include <fstream>
int main() {
std::ifstream ifs("../myfile.txt");
... // Do something sensible with the file
}