c ++ - Hvorfor kan jeg ikke bruge Windows Miljø-sti med upstream til at skrive en tekstfil?

Indlæg af Hanne Mølgaard Plasc

Problem



Hvorfor kan jeg ikke bruge Windows Miljø sti genvej med upstream til at skrive en prøve tekstfil?


    \ C:UsersMeAppDataLocalTempTest.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 () Returner altid falsk, også '\%\% Temp \%\%' og '\\% Temp \\%' virker ikke.


Jeg kan få Temp-sti ved hjælp af Windows API, men jeg vil ikke bruge API i denne applikation. [4]


tak skal du have

Bedste reference


\%Temp\% substitution er noget gjort af nogle Windows-programmer, ikke af C ++ runtime. Hvis du vil gøre det, skal du blot hente miljøvariablen selv og opbygge en sti. Noget som dette 'gør det, men du vil gerne tilføje nogle fejlkontrol:


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