c ++ - Hvorfor opretter/skriver man ikke fil med fstream-arbejde på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Så her har jeg fået dette lille program, som alle selvfølgelig forstår.


include <iostream>  
include <fstream>  
using namespace std;  

int main () {  

 ofstream myfile;  
  myfile.open ("example.txt");  
  myfile << "Writing this to a file.
";  
  myfile.close();  
  return 0;  
}  


Dette program fungerer fint, men problemet er, at hvis jeg har tilføjet det til at køre på Windows, starter (i registre SOFTWARE\Microsoft\Windows\CurrentVersion\Run), starter programmerne fint, men det skaber ikke example.txt-fil. Hvorfor er det, og hvordan undgår jeg det?

Bedste reference


Det forsøger at oprette filen i den aktuelle arbejdsmappe for processen, da du har angivet en relativ sti.


Da der ikke er mulighed for at angive arbejdsmappen i WindowsCurrentVersionRun registreringsdatabasen, er arbejdsmappen arvet fra overordnet proces. Hovedprocessen er shell, explorer.exe, som har en arbejdsmappe på C:Windowssystem32. Siden (forudsat at UAC er aktiveret) har brugeren ikke rettigheder til den mappe, ingen fil er oprettet.