mit einer Variable (C++)

Moin allerseits. Bin grad dabei als Übung ein Telefonbuch zu schreiben aber irgendwie hab ich jetzt ein Problem.

hier erstmal der code:

Code:
#include <iostream>
#include <stdlib.h>
#include <string>

using namespace std;

// Zeichnet eine Trennlinie
void Linie() 
{
    char Zeichen;
    int Laenge;
    
    Zeichen = 196; // Linie
    
    for(Laenge = 1; Laenge <= 80; Laenge ++)
    {
        cout << Zeichen;
    }
}

int main()
{
  string Vorname, Nachname, Nachname2; 
  int Eingabe;
  int Telefonbuch =-1;
  long Tel;
  
  while (Telefonbuch != 0)
  {
  
  cout << endl;
  cout << "\t\"Telefonbuch\"" << endl;
  cout << endl;
  Linie();
  cout << "Folgende Optionen stehen ihnen zur Verfuegung" << endl;
  cout << endl;
  Linie();
  cout << "\tTelefonnummern eintragen        <1>" << endl;
  cout << "\tTelefonnummern abrufen          <2>" << endl;
  
  cout << endl;
  cout << "\tProgramm verlassen              <0>" << endl;
  Linie();
  cout << endl;
  cout << "Ihre Option: ";
  cin  >> Telefonbuch;
  cout << endl;
  
  if (Telefonbuch < 3) 
      {
          system("cls");
          
      
      }
      
      
  
  switch(Telefonbuch)
  {
      case 0: cout << endl;
              cout << "Programm wird beendet..." << endl;
              getchar();
              break;
      
      case 1: cout << endl;
              cout << "\t\" Telefonnumern eintragen\"" <<endl;
              cout << endl;
              cout << "Folgende Angaben werden benoetigt " << endl;
              cout << endl;
              cout << "Nachname: \t";
              cin  >> Nachname;
              cout << endl;
              cout << "Vorname: \t";
              cin  >> Vorname;
              cout << endl;
              cout << "Telefonnummer: \t";
              cin  >> Tel;
              cout << endl;
              cout << endl;
              
              cout << "Eintrag wurde erstellt..." << endl;
              system("PAUSE");
              system("cls");
              break; 

      case 2: cout << endl;
              cout << "\t\"Telefonnummern abrufen\"" << endl;
              cout << endl;
              cout << "Geben Sie ihren Nachnamen ein, damit ihre Daten "
                   << " angenzeigt werden koennen: ";
              cin  >> Nachname2;
  
              if (Nachname2 == Nachname)
              {
                cout << "Ihre Daten lauten wie folgt: " << endl;
                cout << endl;
                cout << "Nachname: ";
                cout << Nachname << endl;
                cout << "Vorname: ";
                cout << Vorname << endl;
                cout << "Telefon: ";
                cout << Tel << endl;
                cout << endl;
                
                cout << "zurueck zum Hauptmenue" << endl;
                cout << endl;
                system("PAUSE");
                system("cls");
                }
                
                
              
              else if (Nachname2 != Nachname)
              {
                cout << endl;
                cout << "Bitte geben sie ihren richtigen Nachnamen ein!" << endl;
                cout << endl;
                system("PAUSE");
                system("cls");
                break;
              } 
      
      default:  cout << endl;
                cout << "\a Ungueltige Eingabe" << endl;
                cout << endl;
                break; 
    }
         
  
      
  	
  
 }
 getchar();
 return 0;  
}

Nun wähle ich die Option Telefonnummern eintragen aus und gebe die Daten ein. Das Problem ist jetzt, wenn ich bei der telnummer eine 11 stellige Zahl eingebe, das Prog nicht mehr zum Mainmenü zurrück kehrt.

Woran könnte das liegen? Der Varieblentyp ist denk ich mal richtig. Bin für jede Hilfe dankbar..

gruß
 
Das liegt denk ich mal an der Variable Tel.
Der Wertebereich von Long ist -2147483648...2147483647.
Mach daraus auch einen String. Dann gehts.
 
mhm..danke. Das mit dem string hat geklappt. Aber warum geht das denn bitteschön mit string und nicht mit einem anderen typ?
 
Weil Long nur Zahlen von -2147483648...2147483647 beinhaltet. Wenn die Nummer nun eine größere Zahl als 2147483647 ist, dann geht es halt nicht.

mfg $oul
 
Zurück
Oben