所以我试图覆盖头文件中的宏,但似乎无法通过使用std :: ifstream打开它。甚至有可能读取/写入现有的头文件,或者是否存在不允许程序修改头文件内容的默认权限?
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。这里有我想念的东西吗?
答案 0 :(得分:1)
是否可以读写头文件?
标题是文件。可以读取和写入文件(假设文件存在,并且该进程具有足够的权限等)。因此,我们可以推断出可以读写头文件。
请注意,修改用于编译程序的头文件对编译后的程序没有影响。它只会影响使用修改后的文件编译的程序。
此外,在编译程序的上下文中的文件与该程序无关。只能读取执行程序的文件系统中的文件。
我这里缺少什么吗?
该文件可能不存在。文件名是最可疑的。它是否真的包含制表符(\t
),还是您打算编写(windows)目录分隔符?反斜杠是转义字符,因此,为了将其写为字符串文字,必须将其转义(带有另一个反斜杠:\\
)。