Редактирование файла HOSTS в Windows - PullRequest
2 голосов
/ 05 ноября 2011

Я пишу приложение, которое управляет записями файлов хостов. Поэтому я написал небольшой код на 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

Итак, да, я пытался запустить программу от имени администратора, но она все равно не работает. Как моя программа может читать / редактировать HOSTS, работающие от имени администратора?

Ответы [ 2 ]

5 голосов
/ 05 ноября 2011

В C ++ вы должны заключать в кавычки обратную косую черту в строковых литералах. Так что попробуйте:

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

Это потому, что использование одинарной обратной косой черты, например \n, означает что-то особенное для компилятора.

1 голос
/ 05 ноября 2011

Возможно, проблема в том, что вы используете обратные косые черты в пути к файлу, которые не экранированы как \\?

...