是否可以读取和写入头文件?

Is it possible to read and write to a header file?

所以我试图覆盖头文件中的宏,但我似乎无法使用 std::ifstream 打开它。甚至可以 read/write 到现有的头文件,或者是否有不允许程序修改头文件内容的默认权限?

std::ifstream versionH;
char temp[100];
versionH.open("..\temp.h");
if (!versionH.is_open()) {
    std::cout << "Didn't open" << std::endl;
    return 1;
}
while (!versionH.eof()) {
    versionH >> temp;
    std::cout << temp << std::endl;
}

我希望能够读取头文件并显示其内容,但 'versionH.is_open()' 返回 false。我在这里遗漏了什么吗?

Is it possible to read and write to a header file?

Headers 是文件。可以读写文件(假设文件存在,进程有足够的权限等)。因此我们可以推断可以读取和写入header个文件。

请注意,修改已用于编译程序的header文件对编译后的程序没有影响。它只能影响使用修改后的文件编译的程序。

此外,编译程序的上下文中的文件与程序无关。只能读取程序执行所在的文件系统中的文件。

Is there something I'm missing here?

可能文件不存在。文件名最可疑。它真的包含制表符 (\t),还是您打算编写 (windows) 目录分隔符?反斜杠是转义字符,所以为了将它写入字符串文字,您必须将其转义(使用另一个反斜杠:\)。