在Windows上编辑HOSTS文件

我正在编写一个pipe理主机文件条目的应用程序。 所以我用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; } 

在提出这个问题之前,我已经阅读了这个问题: 编辑etc \ hosts文件

所以,是的,我试图以pipe理员身份运行该程序,但它仍然无法正常工作。 我的程序如何读取/编辑以pipe理员身份运行的HOSTS?

在C ++中,你必须在字符串中引用反斜杠。 所以试试:

 fstream f ("C:\\Windows\\System32\\drivers\\etc\\hosts"); 

这是因为使用像\n这样的单个反斜杠对于编译器来说是特殊的。

也许问题是你在文件路径中使用反斜线,而不是以\\转义?