如何在CLion中使用C语言读取文件?解决打开失败问题
CLion文件读取失败(相对路径)分步解决指南
问题根源
Code::Blocks默认把项目根目录作为程序运行的工作目录,而CLion默认用编译输出目录(比如cmake-build-debug)作为工作目录,所以直接把file.txt放在项目根目录,CLion里的程序找不到它。
解决方法(二选一即可)
方法一:把文件放到编译输出目录
- 打开你的CLion项目,找到根目录下的
cmake-build-debug或cmake-build-release文件夹(取决于你当前用的是Debug还是Release模式) - 将
file.txt复制到这个文件夹内 - 重新运行程序,
fopen("file.txt","r")就能正常读取文件了
方法二:修改CLion运行配置,指定工作目录为项目根
- 点击CLion右上角的运行配置下拉框(显示当前程序名称的地方),选择
Edit Configurations... - 在弹出的配置窗口中,找到你的C/C++应用程序条目,在
Working directory输入框中,替换为项目根目录路径(可以点击右侧文件夹图标选择,或者直接输入变量$PROJECT_DIR$,CLion会自动识别项目根) - 点击
Apply和OK保存配置 - 把
file.txt放在项目根目录,重新运行程序即可读取
排查验证(可选)
如果还是有问题,可以在代码里添加打印当前工作目录的代码,确认程序实际运行路径:
#include <stdio.h> #include <unistd.h> // Windows下替换为#include <direct.h>,函数换成_getcwd int main() { char buf[1024]; getcwd(buf, sizeof(buf)); // Windows下用_getcwd(buf, sizeof(buf)); printf("当前工作目录:%s\n", buf); return 0; }
运行后根据打印的路径,把file.txt放到对应位置即可。
内容的提问来源于stack exchange,提问作者Severjan Lici
相关产品推荐
相关产品推荐

