Измените .txt файл каталога переменных - PullRequest
1 голос
/ 03 ноября 2010

Я пытаюсь написать программу, которая изменяет файл .txt в каталоге переменных.Однако, когда я пытаюсь это сделать, я получаю сообщение об ошибке.

Моя ошибка:

no matching function for call to `std::basic_ofstream<char,      std::char_traits<char> >::basic_ofstream(std::string&)' 

Мой код:

#include <iostream>
#include <fstream>
using namespace std;

int main () {
    string file_name ;
    cout << "Input the directory of the file you would like to alter:" << endl;
    cin >>  file_name ;


    ofstream myfile ( file_name );
    if (myfile.is_open())
    {
    myfile << "This is a line.\n";
    myfile << "This is another line.\n";
    myfile.close();
    }
    else cout << "Unable to open file";
    return 0;

}

Что я сделал не так?

1 Ответ

6 голосов
/ 03 ноября 2010

Конструкторы fstream принимают строки C, а не std::string, поэтому вам нужно

std::ofstream myfile(file_name.c_str());

Причина, по которой они принимают строки C вместо std::string s, чисто историческая; нет технической причины. C ++ 0x добавляет конструкторы, которые принимают std::string s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...