Почему я не могу использовать путь Windows Environment с ofstream для написания текстового файла?
Почему я не могу использовать ярлык пути Windows Environment с ofstream, чтобы написать образец текстового файла?
\\ C:\Users\Me\AppData\Local\Temp\Test.txt
std::string Path = "%Temp%\\Test.txt"
ofstream myfile;
myfile.open (Path);
if (!myfile.is_open())
{
cout << "Could not create temp file." << endl;
}
myfile << "Hello World";
myfile.close();
myfile.is_open () всегда возвращает false, также "%% Temp %%" и "\%Temp\%" не работают.
Я могу получить Temp путь с помощью Windows API, но я не хочу использовать API в этом приложении.
Спасибо
1 ответ
Решение
%Temp%
замена - это то, что делается некоторыми программами Windows, а не средой выполнения C++. Если вы хотите сделать это, просто извлеките переменную среды самостоятельно и создайте путь. Нечто подобное сделает это, но вы захотите добавить проверку ошибок:
ostringstream tempfilepath;
tempfilepath << getenv("Temp") << '/' << "Test.txt";
ostream myFile;
myFile.open(tempfilepath.str());
...etc...