使用ifstream和QtCreator从当前目录中读取文件
Read a file from current directory using ifstream and QtCreator
我将Qt Creator用于一个没有Qt库的普通C++项目。
我正试图打开这样一个文件:
fopen("text.txt", "r");
或
ifstream fin;
fin.open("text.txt");
但它不能像在Visual Studio中那样只使用文件名,我必须传递它的完整路径才能打开文件。。。
有人知道为什么吗?以及如何在不使用Qt-libs的情况下引用当前目录?
您可以使用QDir::current()
来检查工作目录是否是您想要的。如果没有Qt,您可以使用链接到的解决方案TomA。
运行设置允许您将其配置为从IDE运行应用程序。
它会;你的代码很好。但正如其他答案所暗示的那样,你需要确保你在你认为的目录中运行它。
在左侧面板上,选择"项目",然后(从顶部的选项卡中)选择"运行设置",它将在标记为"工作目录"的字段中显示可执行文件的运行位置。我认为默认情况下,它是发布和调试文件夹上方的目录。
Visual Studio和Qt Creator之间的区别可能是
- 每个程序都在项目结构的不同子目录中启动程序二进制文件
- 一个将text.txt文件作为项目的一部分复制到与二进制文件相同的输出目录中,另一个则不复制
尝试使用这个获取当前目录,然后查看它是否真的包含该文件。
相关文章:
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 读取文件的最后一行并输入到链接列表时出错
- 为什么在读取文件大小时文件IO速度会发生变化
- 读取文件时运行时的未知行为
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C++ 读取文件读取文件不正确
- 读取文件并将其存储在unordered_map中时出现问题
- 读取文件时无法使用 OpenMP 获得加速
- 使用istringstearm和get行缓慢读取文件
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- 读取文件时引发异常
- 从标准输入读取文件后读取用户输入
- 在读取文件后重置句柄
- 如何在C++编译时读取文件?
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 读取文件在第二次调用时返回INVALID_HANDLE
- 通过指针读取文件
- 逐行读取文件,并将数据插入变量和数组中