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)