An Datei anfügen

So. Extra für dich geschrieben. Und es funktioniert. Jedenfalls bei mir. Habe es ausprobiert.

Code:
#include <iostream.h>
#include <fstream.h>
#include <conio.h>

int main()
{
        const int MAX=100;
        int count=0, modus=0;
        char Vorname[MAX], Nachname[MAX], Strasse[MAX], Nummer[MAX], PLZ[MAX], Ort[MAX];
        char taste, filename[MAX];

        clrscr();
        cout<<"Dies ist ein kleiner Test, Daten ueber C++ in eine Datei zu bekommen!\n";
        cout<<"ACHTUNG: Die Hausnummer wird extra angegeben!\n\n";
        cout<<"Vorname:  "; cin>>Vorname;
        cout<<"Nachname: "; cin>>Nachname;
        cout<<"Strasse:  ";

        do
        {
           taste=getch();
           // 8 Ist das Ascii-Zeichen für Backspace und 13 für Enter
           if(taste!=13 && taste!=8)
           { 
              Strasse[count]=taste;
              count++;
              cout<<taste;
           }
           if(taste==8 && count>0)
           {
              count--;
              Strasse[count]=NULL;
              cout<<taste<<" "<<taste;
           }
        } while(taste!=13);

        cout<<"\nNummer:   "; cin>>Nummer;
        cout<<"PLZ:      "; cin>>PLZ;
        cout<<"Ort:      "; cin>>Ort;

        cout<<"\n\nFilename: "; cin>>filename;
        cout<<"\nSoll die Datei "<<filename<<" ueberschrieben werden? (J/N): ";
        do
        {
          taste=getch();
          if(taste=='j' || taste=='J') modus=1;
          else modus=0;
        } while(taste!='j' && taste!='J' && taste!='n' && taste!='N');

        cout<<"\n\nSo, Datein eingegeben. Zur Kontrolle nochmal ausgegeben:\n";

        cout<<"\nVorname:  "<<Vorname;
        cout<<"\nNachname: "<<Nachname;
        cout<<"\nStrasse:  "<<Strasse;
        cout<<"\nNummer:   "<<Nummer;
        cout<<"\nPLZ:      "<<PLZ;
        cout<<"\nOrt:      "<<Ort;
        cout<<"\n\n";

        ofstream write;
        if(modus==0) write.open(filename,ios::app);
        else write.open(filename);
        write<<"\n-----------------------";
        write<<"\nVorname:  "<<Vorname;
        write<<"\nNachname: "<<Nachname;
        write<<"\nStrasse:  "<<Strasse;
        write<<"\nNummer:   "<<Nummer;
        write<<"\nPLZ:      "<<PLZ;
        write<<"\nOrt:      "<<Ort;
        write.close();

        cout<<"Eine beliebige Taste zum beenden druecken";
        getch();

        return 0;
}
 
Zuletzt bearbeitet:
Ich kann es leider nicht kompilieren. Dev-C++ kommt damit nicht klar:
6 W:\temp\compile\test2.cpp `main' must return `int'
Wenn ich es mit VC++ kompiliere, stürzt das Programm nach dem speichervorgang ab, zudem kennt es clrscr nicht
Unter Linux (SuSE Prof 9.0) kommt eine riesen Fehlerflut, die wohl auf das fehlen der conio.h zurückzuführen ist.
Das Projekt scheint schwieriger als es ist!
 
Danke! Jetzt funktioniert es wieder.
Jetzt gibt es ja noch ein Problem: Und zwar mit dem Backspace. Wenn sich jemand vertippt, dann wird der cursor nicht nurückgesetzt, aber wenn man von dort an weiterschreibt, wir das zeuichen ersetzt. Dies wollte ich jetzt lösen, aber wich weiß nicht, wie ich es anstellen soll.
Ich hatte die Überlegung, dass ich bei der Taste backspace die Zeile lösche und neu ausgebe, mit einem Zeichen weniger am Ende.
Wie sollte man das tatsächlich machen?
 
Danke RealbigZ, jetzt läuft es! Jetzt kann ich mich an das setzten, was ich mal selber bauen wollte!

mfg
Klink
 
Zurück