我已经申请了一个比赛,它打开一个文本文件并读取所有行:
fstream infile("C:\Struct.in");
但是比赛规则并没有提到文本文件应该放在哪里。好吧,我猜它应该在程序所在的文件夹中。所以我可以告诉编译器在那个文件夹中搜索:
fstream infile("C:\Users\User...Struct.in");
在这种情况下,问题是我不知道考官将文件夹放在哪里,也许他把它放在桌面上,也许他把它放在他的下载中......这是一个问题。最后,我发现最好的方法是命令编译器在运行时找到文件夹的位置,然后搜索文本文件并完成剩下的工作,例如:
string ExePath = GetFilePath(Program's Exe);
string TextFilePath = ExePath + "Struct.in";
fstream infile(TextFilePath);
在 pascal 中,命令是“ExtractFilePath”,但我是 C++ 新手,有什么办法吗?到目前为止,我已经在互联网上搜索,但我找不到任何有用的东西。
我正在使用 CodeBlocks 12.11(编译器:gnu gcc)
非常感谢