Bundes Länder Quiz mit C++ programmieren



  • Hallo Zusammen,
    ich versuche mit dem Buch easy C++ "Programmieren mit einfachen Beispielen" von Dirk Louis, das Länder Quiz zu programmieren. Der Compiler gibt auch keine Fehlermeldung mehr.Leider wird das Programm immer mit dem Hinweis "Datei konnte nicht geöffnet werden beendet.Also beim mir in Zeile 23 mit return -1.

    /* Quiz.cpp - Quiz - Programm, das die Hauptstädte der Bundesländer abfragt
    */
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    int main()
    {
      ifstream dat_ein;
      string dateiname = ("daten.txt");  // Datenbank des Programms
    
      // Datenbankdatei öffnen
      dat_ein.open(dateiname.c_str(), ios_base::in);
    
      if (!dat_ein)
      {
        cout << "Datei konnte nicht geoeffnet werden!";
        cout << endl;
        cin.get();
        return -1;
      }
      int anzahl;              // Gesamtzahl der Land/Stadt- Kombinationen
    
      int datensatz;           // auszuwaehlender Datensatz
      string land, stadt;      // Land- und Stadtfelder aus dem aktuellen Datensatz
      int loop;
    
      string antwort;          // Antwort des Anwenders
    
      // Wie viele Datensätze gibt es in der Datenbank
      dat_ein >> anzahl;
    
      // Eine Zufallszahl zwischen 1 und der Gesamtzahl der Datensätze ziehen
      srand( (unsigned)time( NULL ) );
      datensatz = rand() % anzahl + 1;
    
      // Land- und Stadtfeld des ausgewählten Datensatzes einlesen
      loop = 2 * datensatz;
      while(loop >= 2)
      {
        dat_ein >> land >> stadt;
        loop -= 2;
      }
    
      // Anwender nach der Hauptstadt fragen
      cout << "Wie heisst die Hauptstadt von/der "
           << land << "?" << endl;
      cin >> antwort;
    
      // Antwort auswerten
      if (antwort == stadt)
      {
        cout << endl << "Richtig!" << endl;
      }
      else
      {
        cout << endl << "Falsch!" << endl;
        cout << "Die richtige Antwort ist: " << stadt
             << endl;
      }
      // Datenbankdatei schließen
      dat_ein.close();
    
      cin.get();
      return 0;
    }
    

    Was habe ich falsch gemacht ? Kann mir jemand helfen ?
    Dank Danke.

    Liebe Grüße GlaSte



  • Wahrscheinlich reicht es nicht, nur den Dateinamen anzugeben, es braucht auch den Pfad.

    Bitte beachte aber, dass das keine C++Builder-spezifische Frage ist, sowas gehört eigentlich ins C- bzw. C++Forum.



  • wo liegt denn deine daten.txt?



  • Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum C++ (auch C++0x, bzw. C++11) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Gib den absoluten Pfad mit doppelten "backslashes" an oder verschiebe die Datei in den Projekt-Ordner, dann hat sich das Problem höchstwahrscheinlich auch schon erledigt.



  • Danke für Eure Hilfe. Ich werde den Ordner dann mal verschieben.

    Liebe Güße GlaSte


Anmelden zum Antworten