Problem mit fstream und GetUserName.
-
Hi Leute ich wollte heute ein Programm erstellen da will ich dass es auch andere
Benutzer benutzen können.TCHAR name [ UNLEN + 1 ]; DWORD size = UNLEN + 1; if (GetUserName( (TCHAR*)name, &size )) cout << "Hello, " << name << "!\n"; else cout << "Hello, unnamed person!\n"; //so bekomme ich den UserName //aber wie kann ich jetzt machen dass da nicht Patrick steht sondern dass auch //andere benutzer die dann zb. einen anderen Namen haben das auch benutzen können. fstream fout2("C:\\Users\\Patrick\\Downloads\\Buch\\msvcp110d.dll", ios::out | ios::binary);Danke schonmal im voraus.
-
Ich glaube, du musst ins C Board.
Nein warte, du benutzt ja
fstream!DWORD size = UNLEN + 1; std::basic_string<TCHAR> name(size); if ( GetUserName( &name[0], &size) ) { name.resize( size - 1 ); cout << "Hello, " << name << "!\n"; // Hier kann es zu Problemen kommen, je nach dem wie TCHAR definiert ist. } else std::cerr << "Couldn't retreive user name!";So, das ist besser.
Und um den User-Namen einzusetzen, kannst du
GetUserProfileDirectorynutzen.
Oder du hängst den User-Namen anC:\\Users\\an, ich bin mir allerdings nicht gewiss, ob das immer funktioniert.
-
Also mit fstream habe ichs jetzt raus nur bei _mkdir
kann ich nicht dieses hier machen:
TCHAR name [ UNLEN + 1 ]; DWORD size = UNLEN + 1; if (GetUserName( (TCHAR*)name, &size )) cout << "Hello, " << name << "!\n"; else cout << "Hello, unnamed person!\n"; string tada = name; fstream fout2("C:\\Users\\"+tada+"\\Downloads\\Buch\\msvcp110d.dll", ios::out | ios::binary);dies funktioniert aber dies funktioniert nicht:
_mkdir("C:\\Users\\"+tada+"\\Downloads\\Buch");Da kommt dann der Error : Dies ist keine passende Konvertierungsform
-
fstream fout2("C:\\Users\\"+tada+"\\Downloads\\Buch\\msvcp110d.dll", ios::out | ios::binary);Wenn du nur schreiben willst, dann nimmst du gefälligst einen ofstream:
ofstream out("C:\\Users\\"+tada+"\\Downloads\\Buch\\msvcp110d.dll", ios::binary);Dieses hier:
_mkdir("C:\\Users\\"+tada+"\\Downloads\\Buch");kann auch nicht funktionieren, da _mkdir einen C-String erwartet. Ergänzung:
_mkdir( ("C:\\Users\\"+tada+"\\Downloads\\Buch").c_str() );
-
Sone schrieb:
fstream fout2("C:\\Users\\"+tada+"\\Downloads\\Buch\\msvcp110d.dll", ios::out | ios::binary);Wenn du nur schreiben willst, dann nimmst du gefälligst einen ofstream:
ofstream out("C:\\Users\\"+tada+"\\Downloads\\Buch\\msvcp110d.dll", ios::binary);Dieses hier:
_mkdir("C:\\Users\\"+tada+"\\Downloads\\Buch");kann auch nicht funktionieren, da _mkdir einen C-String erwartet. Ergänzung:
_mkdir( ("C:\\Users\\"+tada+"\\Downloads\\Buch").c_str() );Vielen Dank dir das kann geschlossen werden