prog schreibt nix



  • Mein programm soll eigentlich einen Vornamen in eine Datei schreiben, die im WIN/systen32 liegt. leider tut sie das nicht. Die datei existiert zwar noch nich, aber eigentlich müsste sie doch angelegt werden, oder?

    GetWindowsDirectory(wpath,MAX_PATH);
    strcat(wpath,"\\system32\\adrbk.txt");
    
    cout<<"Vorname: ";
    cin>>newname.Vorname;
    cout<<"\nNachname : ";
    cin>>newname.Nachname;
    
    ofstream file (wpath);
    if(file.is_open()) {
    cout<<"ES scheit zu klappen";
    file<<newname.Vorname;
    }
    getch();
    


  • sry, falsches forum



  • siehst du denn die meldung: "ES scheit zu klappen" ?
    und welchen datentyp hat newname.Vorname ? falls es char* ist, hast du auch speicher alloziiert ?

    was auch immer



  • hi!
    versuch mal folgendes:

    ofstream datei;
    datei.open(wpath, ios::out);
    

    es kann nämlich sein, dass der stream gar nicht weiß, dass er eine file erstellen soll.

    achja, und die dopple-backslashs "\" sind vielleicht auch ein backslash zuviel.
    mfg,
    chris90



  • chris90 schrieb:

    hi!
    versuch mal folgendes:

    ofstream datei;
    datei.open(wpath, ios::out);
    

    es kann nämlich sein, dass der stream gar nicht weiß, dass er eine file erstellen soll.

    Der Ctor erzeugt automatisch das File wenn nötig.

    achja, und die dopple-backslashs "\" sind vielleicht auch ein backslash zuviel.

    Nein, sind sie nicht. Denn sonst wäre "\\adrbk" nicht \adrbk sondern Alarm + drbk



  • Habs mal mit

    ofstream datei;
    datei.open(wpath, ios::out);
    

    versucht, aber eine wirkung. Ich frage mich aber, wie er eine Datei öffnen kann, wenn sie gar nicht da ist(und auch, ohne sie zu schreiben)

    if(file.is_open()) {
    cout<<"ES scheit zu klappen";
    

    newname.Vorname ist char.
    Hab auch mal probiert den namen mit cout auszugeben und es hat geklappt



  • Weis denn keiner, woran es liegen könnte??? *verzweifel*



  • nero-ex schrieb:

    ofstream datei;
    datei.open(wpath, ios::out);
    

    Ich frage mich aber, wie er eine Datei öffnen kann, wenn sie gar nicht da ist(und auch, ohne sie zu schreiben)

    Das wäre schon in Ordnung, aber auf den ersten Blick scheint auch Dein Code zu passen.

    Aber Du hast noch immer nicht beantwortet ob "Es scheint zu klappen" ausgegeben wird oder nicht.



  • Ja, es wird ausgegeben



  • Und was gibt ein

    cout << newname.Vorname;
    

    nach dem "Es scheint..."-cout aus?



  • Weis zwar immer noch nicht, woran es lag, aber es klappt jetzt (der compiler hatte irgendein Problem damit das wpath extern war???).


Anmelden zum Antworten