#include <iostream>
#include <fstream>
using namespace std;
#define BRIGHTNESS_FILE "/sys/class/backlight/radeon_b10/brightness"
int main()
{
ifstream brightness_file("BRIGHTNESS_FILE");
int a;
brightness_file >> a;
cout << a;
}
我已经检查了文件的路径和权限。 我不知道为什么它不会从中读取。
编辑
我用 BRIGHTNESS_FILE 修复了整个定义的东西,但它仍然无法打开。为了安全起见,我已经多次检查路径。
最佳答案
您将 BRIGHTNESS_FILE
定义为常量字符串文字:
#define BRIGHTNESS_FILE "/sys/class/backlight/radeon_b10/brightness"
但根本不要使用它:
ifstream brightness_file("BRIGHTNESS_FILE");
"BRIGHTNESS_FILE"
也是 字符串文字 - 它与您的宏无关。这就是为什么它的内容不会被预处理器替换的原因。
你需要的是:
ifstream brightness_file(BRIGHTNESS_FILE);
现在,BRIGHTNESS_FILE
将更改为“/sys/class/backlight/radeon_b10/brightness”,您的文件应该可以正确打开(当然,如果它存在并且可以访问)。
关于c++ - 为什么 ifstream 不能打开这个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31632915/