Почему я не могу использовать путь Windows Environment с ofstream для написания текстового файла? - PullRequest
0 голосов
/ 09 июня 2018

Почему я не могу использовать ярлык пути к среде Windows с 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 \% "не работают.

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

Спасибо

1 Ответ

0 голосов
/ 09 июня 2018

Подстановка %Temp% выполняется некоторыми программами Windows, а не средой выполнения C ++.Если вы хотите сделать это, просто извлеките переменную среды самостоятельно и создайте путь.Примерно так и будет, но вы захотите добавить проверку ошибок:

ostringstream tempfilepath;
tempfilepath << getenv("Temp") << '/' << "Test.txt";
ostream myFile;
myFile.open(tempfilepath.str());
...etc...
...