Fehlermeldung



  • Also als erstes ich bin noch ein Anfänger. Ich schreibe gerade mein erstes Programm.
    ich möchte daten in eine ini datei schreiben.
    Der Code:

    NeuerEinsatz()
    {
     //Variablen definieren
     int Datum;
     char ZeitVon;
     char * Ort;
     char * Auftrag;
     int Stunden;
     int Total;
     char * Einsatzleiter;
     char * Ausbezahlt;
    
     cout << "Datum:";
     cin >> Datum;
     cout << "\nVon:";
     cin >> ZeitVon;
     cout << "\nBis:";
     cin >> ZeitBis;
     cout << "\nOrt";
     cin >> Ort;
     cout << "\nAuftrag";
     cin >> Auftrag;
     cout << "\nEinsatzleiter (Ja|Nein)";$
     cin >> Einsatzleiter;
     cout << "\nAusbezahlt (Ja|Nein)";
     cin >> Ausbezahlt;
     cout << "\n";
    
     //Berechnungen
     Stunden = ZeitBis - ZeitVon;
     Total = Stunden * Ansatz;
    }
    main()
    {
     //Variablen definieren
     int menu;
     int okay = 1;
    
     //Menü ausgeben
     while(okay)
     {
      cout "1: Neuer Einsatz\n";
      cin >> menu;
      switch(menu)
      {
       case 1:
        NeuerEinsatz();
       break;
       default:
         cout << "Dieser Menüpunkt ist nicht aktiviert";
       break;
      }
     }
    }
    

    Nach dem Ausgeben von Ort schliesst der pc immer das Programm. Und sobald ich ein Komma eingeben beginnt er die while schlaufe die ganze Zeite zu durchlaufen bis ich das Programm beende. Kann mir villeicht jmand helfen?

    Vielen Dank



  • Hallo,

    erstmal würd ich dir empfehlen, bessere Titel für deine Threads zu wählen und dich genauer auszudrücken. Dann lässt sich das, was du gepostet hast, nicht kompilieren, man muss noch einige Sachen berichtigen, aber das sagt einem der Compiler schon. Das Problem, was du wohl ansprichst, liegt daran, dass du einen char Zeiger definierst, aber kein Speicher bereitstellt. Das macht man in C++ mit new. Also in etwa so:

    char *text = new char[200]; // Speicher für 200 Zeichen resevieren...
    char text[200]; // ...oder gleich nen Array nehmen.....
    

    Aber in C++ würd ich strings nehmen, weil man sich dabei um sowas nicht mehr kümmern muss:

    std::string text; // Fertig! Du musst nur vorher noch #include <string> einfügen
    

    Mit einer dieser Möglichkeiten sollte das laufen. Allerdings bezweifle ich, dass dein Datum so funktioniert, wie du dir das vorstellst.....



  • Vielen Dank für deine Antwort.
    Ich habe aber immer noch ein Problem. Jetzt funktioniert zwar das Programm aber solbald ich die ZeitVon angeben habe kommt kann ich erst wieder beim Ansatz etwas eingeben bei. Die Eingaben die dazwischen liegen, werden einfach übersprungen.
    Wie kann ich das beheben.
    Und noch ein Problem: Sobald ich ein Komma eingebe egal ob es als int oder als char definiert ist spring er immer zur while schleife und führ sie einfach aus bis ich die das Dos fenster schliesse!
    Wie kann ich auch diesen Fehler beheben?
    Ich hoffe ich habe mein Problem dieses mal genug gut beschieben.


Log in to reply