Zahlen und Buchstaben in einer Variable



  • hallo,

    hab hier folgendes problem:

    werden werte eingegeben die kleiner als 0 und größer als 9999 eingeben soll das programm fehlermeldung anzeigen. ich möchte aber auch das wenn ich z.b. eine a eintippe das dann auch die fehlermeldung kommt. die kommt auch, geht dann aber nicht mehr weg. hat jemand von euch ne idee?

    #include <conio.h>
    #include <iostream.h>
    #include <windows.h>
    #include <time.h>
    #include <stdio.h>
    #include <fstream>
    #include <stdlib.h>

    int main()

    {

    double luft;
    int t,x=5,y;

    do
    {

    y=8;
    ::COORD coord500 = {x,y};
    ::SetConsoleCursorPosition(::GetStdHandle(STD_OUTPUT_HANDLE), coord500);

    cout<<" ";

    t=1;

    y=6;
    ::COORD coord23 = {x,y};
    ::SetConsoleCursorPosition(::GetStdHandle(STD_OUTPUT_HANDLE), coord23);

    cout<<"Geben sie bitte den CO2 Gehalt ein!";

    y=7;
    ::COORD coord22 = {x,y};
    ::SetConsoleCursorPosition(::GetStdHandle(STD_OUTPUT_HANDLE), coord22);

    cout<<"(zwischen 0 und 9999 ein)";

    y=8;
    ::COORD coord8 = {x,y};
    ::SetConsoleCursorPosition(::GetStdHandle(STD_OUTPUT_HANDLE), coord8);

    cin>>luft;

    if (luft<0 || luft>9999)
    {
    y=8;
    ::COORD coord5 = {x,y};
    ::SetConsoleCursorPosition(::GetStdHandle(STD_OUTPUT_HANDLE), coord5);

    t=1;
    cout<<"Fehleingabe!!!";
    Sleep(2000);
    }

    else
    {

    t=0;

    }

    }
    while (t==1);
    }



  • x-rey schrieb:

    hab hier folgendes problem:

    Du hast hier bereits mehrere Probleme.

    a) Ist dein Code schlicht und ergreifend kein gültiger C++ Code
    ==> Es gibt seit dem C++ Standard von 98! keine C++ Standardheader mehr die beim Include ein .h haben, wenn man C-Header unter C++ verwendet gilt das gleiche + vorangestelltes "c". Wenn ich mich nicht irre betrifft dies folgende Header:

    #include <conio.h>
    #include <iostream.h> ==> <iostream>
    #include <windows.h>
    #include <time.h> ==> <ctime>
    #include <stdio.h> ==> <cstdio>
    #include <fstream>
    #include <stdlib.h> ==> <cstdlib> ?

    b) Dein Programmcode ist unleserlich (Verwende bitte die C/C++ Tags, und rücke sauber ein!).

    Ich habe es mal auf das wesentlichste zusammengestutzt (Und auf ANSI-C++ begrenzt):

    #include <iostream>
    
    int main()
    {
      double luft;
    
      while(true)
      {
        std::cout << "Geben sie bitte den CO2 Gehalt ein (0 bis 9999): ";
        std::cin >> luft;
    
        if (cin.fail())
        {
          cin.clear();
          std::cout << "Fehleingabe!!!" << std::endl << std::endl;
        }
        else if(luft<0.0 || luft>9999.0)
          std::cout << "Fehleingabe!!!" << std::endl << std::endl;
        else
          break;
      }
    
      return 0;
    }
    

    c) Eine Eingabe von einem nicht-int macht den Eingabestream ungültig! (fail/clear)


Log in to reply