为什么ifstream不打开这个文件?

时间:2015-07-26 01:59:38

标签: c++ ifstream

#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修复了整个定义事物,但它仍然无法打开。为了安全起见,我已多次检查路径。

2 个答案:

答案 0 :(得分:5)

我假设您没有名为jQuery("body").load(window.location.href); 的文件。因为那是您尝试打开的文件名。删除引号以使用宏定义的字符串。

"BRIGHTNESS_FILE"

答案 1 :(得分:5)

您将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”并且您的文件应该正确打开(如果它存在且当然可以访问)。