2

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

所以,是的,我已经尝试以管理员身份运行该程序,但它仍然无法正常工作。我的程序如何读取/编辑以管理员身份运行的主机?

4

2 回答 2

5

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

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

这是因为使用一个类似的反斜杠\n对编译器来说意味着一些特殊的东西。

于 2011-11-05T03:24:26.053 回答
1

也许问题是您在文件路径中使用了未转义为的反斜杠\\

于 2011-11-05T03:23:52.643 回答