Bitte um nen kleinen Tipp gegen evtl. blamage bei Referat
-
danke für die schnelle hilfe aber könntest du das evtl. kurz schreiben wie das dann in die if bedingung hinein müsste? kann noch net so gut programmieren
mfg Snake
-
Hi...so:
int iInput; if(std::cin >> iInput) { // alles ok } else { // da hatta scheiße gebaut^^ }
-
kann es angehen das dadurch das ich mit dem Borland C++ arbeitet das
std::cin>>nicht funktioniert?
-
Nein, das geht beim Borland C++ Compiler genau so. Welche Version hast du denn und vor allem, hast du #include <iostream> statt #include <iostream.h> drin?
-
hab des ma eben aus dem programm rausgeschrieben, wie müsste das denn aussehen wenn er die fehlermeldung ausgegeben soll wenn ein buchstabe eingegeben wird!
#include <iostream> #include <stdio.h> #include <conio.h> #include <time.h> #include <dos.h> int a,b,f,z; void main() { cout<<"\nBitte geben sie die Stunde der Weckzeit ein! "<<endl; cin>>a; cout<<"\nBitte geben sie die Minute der Weckzeit ein!"<<endl; cin>>b; while(4) { void pause(int sekunden); struct time t; gettime(&t); f++; cprintf("Die aktuelle Zeit ist: %2d:%02d:%02d\n", t.ti_hour,t.ti_min, t.ti_sec); cprintf("\r\nDie Weckzeit ist: %02d:%02d:00",a,b); pause(1); clrscr(); //Wenn a größer als 23 oder b größer als 59 ist// if(a>23 || b>59) { cout<<"Falsche Uhrzeit Eingabe!"<<endl; pause(3); clrscr(); break; } if(a==t.ti_hour && b==t.ti_min) { f=0; while(5) { f++; cout<<char(7); cout<<char(7); cout<<"AUFWACHEN !!!!!!"<<endl; pause(1); clrscr(); if(f==4) { cout<<"Ihre Weckzeit ist erreicht!"<<endl; getchar(); clrscr(); z=0; break; } } } if(z==0) { break; } } } void pause(int sekunden) { int startZeit=time(NULL); while (startZeit+sekunden>time(NULL)); };mag das ma jemand bitte ändern?? bin scheinst zu blöd?
thx im voraus
-
Mal die ein oder andere Bemerkung:
while(4) {}Dieses (4) ist wie (true), da jede Zahl ungleich 0 als true interpretiert wird (verbessert mich falls ich falsch liege).
void pause(int sekunden);Dies ist doch kein korrekter Aufruf einer Funktion, das sollte so lauten:
pause(5); // die 5 ist dann die Pause in SekundenZu deinem Problem:
if(cin >> a); // leere Anweisung else { cout << "Falsche Eingabe" << endl; // oder sonstwas... }Außerdem wundern mich noch was: du benutzt keinen namespace (also "using namespace std"), und trotzdem funktioniert cout etc.???
-
ich will die Variable a ja so deklariert haben das wenn meinetwegen statt ner Zahl nen k eingegeben wird das er dann rummault. Aber zuz Zeit setzt er das dann einfach auf Null und das soll auf keinen fall passieren!
-
Tobias W schrieb:
if(cin >> a); // leere Anweisung else { cout << "Falsche Eingabe" << endl; // oder sonstwas... }Also ich würd sagen eher so...übersichtlicher
:if(!(cin >> a)) { cout << "Falsche Eingabe" << endl; // oder sonstwas... }
-
Meckern tut er mit meinem Codeteil oben schon, er lässt nur keine neue Eingabe zu.
Deswegen wollte ich folgendes vorschlagen:
int a; while(true) { std::cin >> a; if(a>=0 && a<=23) break; else cout << "mist gebaut" << endl; }Doch hier überspringt er das cin>>a; beim zweiten durchlauf und ich komme in eine Endlosschleife -> WARUM?
Hat da jemand ne Ahnung? Warum wird das cin einfach übergangen?
-
Jop so klappt es! besten dank an alle! Das mim
if(!(cin>>a))klappt 100%
Dann gehts ya hoffentlich morgen doch net inne hose !
Besten dank nochmalGude nacht!
Mfg Snake