2013-06-18 3 views
3

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

string address; 
    cin>>address; 
    ifstream file(address); 

Как открыть файл таким образом?

ответ

2

Фактически этот код работает как есть - по крайней мере, в текущей версии, C++ 11.

До этого, вам нужно преобразовать строку в строку C-стиль:

ifstream file(address.c_str()); 

Хотя вы должны остерегаться пробелов в пути файла в качестве CapelliC, упомянутых в его (теперь удален) ответ; для того, чтобы гарантировать, что пользователь может ввести пути с пробелами (например, «~/some file.txt»), использовать std::getline вместо оператора потока:

getline(cin, address); 
0

possibily проблема может быть наличие пространства в address.

Попробуйте использовать GetLine (CIN, адрес) вместо (спасибо Konrad, чтобы определить проблему, мой C++ это немного ржавый ...)

+0

Вы не можете использовать 'станд :: CIN :: getline' на 'std :: string'. –

+0

Да, я его удалю - снова! – CapelliC

Смежные вопросы