C ++ параметры входного потока - PullRequest
1 голос
/ 14 ноября 2011

Мне было просто интересно, есть ли у вашего пользователя возможность указать местоположение файла при попытке использования потока?

Из того, что я хочу сделать:

int main()
{
ifstream instream; 

string file_location;
cout << "Enter in file location: " << endl; 
cin >> file_location;
instream.open(file_location);
}

Поэтому я хочу, чтобы они указали расположение файла, но программа не будет компилироваться.

Я получаю сообщение об ошибке:

нет соответствующей функции для вызова 'std :: basic_ifstream> :: open (std :: string &)'

Ответы [ 2 ]

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

Используйте instream.open(file_location.c_str()); вместо.

0 голосов
/ 14 ноября 2011

У вас правильная идея, но ваши типы немного неверны. open принимает const char *, а не std :: string, поэтому вам нужно предоставить const char *, который содержит строка. Метод c_str() из std :: string вернет const char *, представляющий std :: string.

Например:

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