2015-05-20 2 views
2

Я точно не знаю, есть ли я в вопрос IDE/ToolChain УДС вопрос или вопрос C++:Тильда ~ делает проблемы при использовании fstream на Mac

Я хочу, чтобы сохранить файл с ofstream. Это работает так, как ожидалось. Но когда я сохраняю путь к файлу с тильдой типа «~/Desktop/test.txt», ofstream::good() сообщает об ошибке. Однако я могу успешно использовать такой путь, как «/Users/Michael/Desktop/test.txt».

Это относится к отладчику Xcode, для запуска с Eclipse, а также для прямого вызова exectuable с консоли.

В чем проблема с тильдой «~» здесь?

+3

'~' является функцией вашей реальной оболочки, чтобы расширить текущий каталог '$ HOME'. Вы не можете использовать его с 'std :: fstream' ни на Mac, ни на других ОС. –

ответ

6

Нет пути ~, это то, что интерпретируется вашей оболочкой. Вам нужно будет расширить его до любой переменной окружения HOME.

Если вы вызываете свой инструмент через оболочку, это будет расширено для вас заранее. Если вы находитесь в Xcode, вам нужно явно указать $HOME.