在C++中,如何提取文本文件的路径
In C++, how to ExtractFilePath of textfile
我为比赛做了一个申请,它打开了一个文本文件并读取所有行:
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 将理解此上下文中的/
字符,.
是当前目录的公用名。
相关文章:
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- C++试图读取一个文件并输出到另一个文本文件
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 已修改的LinkedList未在文本文件本身中更新
- C++文本文件的获取线
- 为什么C++的文件 I/O 在读取文本文件时忽略初始空行?我怎样才能让它不这样做?
- 从二进制文件中抓取文本时,为什么 xdg_vtnr=8 是我的结果
- Windows XP在C++中启动时读取文本文件的速度较慢;预取