#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;
}
Run Code Online (Sandbox Code Playgroud)
我已经检查了文件的路径和权限.我不知道为什么它不会从中读取.
编辑
我用BRIGHTNESS_FILE修复了整个定义事物,但它仍然无法打开.为了安全起见,我多次检查了路径.
我假设你没有一个名为的文件"BRIGHTNESS_FILE".因为这是您尝试打开的文件名.删除引号以使用宏定义的字符串.
ifstream brightness_file(BRIGHTNESS_FILE);
Run Code Online (Sandbox Code Playgroud)
您定义BRIGHTNESS_FILE为常量字符串文字:
#define BRIGHTNESS_FILE "/sys/class/backlight/radeon_b10/brightness"
Run Code Online (Sandbox Code Playgroud)
但是根本不要使用它:
ifstream brightness_file("BRIGHTNESS_FILE");
Run Code Online (Sandbox Code Playgroud)
"BRIGHTNESS_FILE"是也一个字符串-它无关,与你的宏.这就是为什么它的内容不会被预处理器取代的原因.
你需要的是:
ifstream brightness_file(BRIGHTNESS_FILE);
Run Code Online (Sandbox Code Playgroud)
现在,BRIGHTNESS_FILE将更改为"/ sys/class/backlight/radeon_b10/brightness"并且您的文件应该正确打开(如果它存在且可访问,当然).