我正在编写一个管理主机文件条目的应用程序。所以我在C ++中编写了一些代码来尝试访问和读取HOSTS文件:
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
int main(void)
{
string line;
fstream f ("C:\Windows\System32\drivers\etc\hosts");
if ( f.is_open() )
{
while ( f.good() )
{
getline(f,line);
cout << line << endl;
}
f.close();
} else
cout << "Error" << endl;
system("pause");
return 0;
}
在提出这个问题之前,我已经读过这个问题:edit the etc\hosts file
所以,是的,我已经尝试以管理员身份运行该程序,但它仍然无效。我的程序如何读取/编辑以管理员身份运行的HOSTS?
答案 0 :(得分:5)
在C ++中,您必须在字符串文字中引用反斜杠。所以试试:
fstream f ("C:\\Windows\\System32\\drivers\\etc\\hosts");
这是因为使用像\n
这样的单一反斜杠意味着编译器会有一些特殊的东西。
答案 1 :(得分:1)
问题可能是你在文件路径中使用了不作为\\
进行转义的反斜杠?