Открытие файла с помощью std :: string - PullRequest
2 голосов
/ 08 февраля 2009

Это должно быть довольно тривиальной проблемой. Я пытаюсь открыть ofstream, используя std :: string (или std :: wstring), и у меня возникают проблемы с тем, чтобы это работало без грязного преобразования.

std::string path = ".../file.txt";

ofstream output;

output.open(path);

В идеале я не хочу преобразовывать это вручную или использовать указатели в стиле c, если есть более хороший способ сделать это?

Ответы [ 3 ]

9 голосов
/ 08 февраля 2009

В строке пути используйте две точки вместо трех.

Также вы можете использовать метод c_str () для строки, чтобы получить базовую строку C.

output.open(path.c_str());
2 голосов
/ 08 февраля 2009

это должно работать:

output.open(path.c_str())

0 голосов
/ 08 февраля 2009

Боюсь, это просто невозможно. Вы должны использовать c_str, и да, это отстой.

Кстати, использование char * также означает, что fstream не поддерживает имена файлов Unicode ... позор.

...