在C++中,如何提取文本文件的路径

In C++, how to ExtractFilePath of textfile

本文关键字:取文本 文件 路径 何提 C++      更新时间:2023-10-16

我为比赛做了一个申请,它打开了一个文本文件并读取所有行:

fstream infile("C:Struct.in");

但是比赛规则没有提到文本文件应该放在哪里。好吧,我想它应该在程序所在的文件夹中。所以我可以告诉编译器在该文件夹中搜索:

fstream infile("C:UsersUser...Struct.in");

在这种情况下的问题是我不知道审查员会把文件夹放在哪里,也许他把它放在桌面上,也许他把它放在他的下载中......这是一个问题。最后,我发现最好的方法是命令编译器在运行时找到文件夹的位置,然后搜索文本文件并完成其余的工作,例如:

string ExePath = GetFilePath(Program's Exe);
string TextFilePath = ExePath + "Struct.in";
fstream infile(TextFilePath);

在 pascal 中,命令是"提取文件路径",但我是C++新手,所以有什么办法可以做到这一点吗?到目前为止,我已经在互联网上搜索过,但我找不到任何有用的东西。

我正在使用 CodeBlocks 12.11(编译器:gnu gcc)

多谢

如果不指定路径,只指定文件名,则会将其放置在运行应用程序的文件夹中。

fstream infile("Struct.in");

就是这样。

应该是c:\Struct的,因为是转义字符。但通常的解决方案只是"./Struct.in".Windows 将理解此上下文中的/字符,.是当前目录的公用名。