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 Sekunden
    

    Zu 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 nochmal

    Gude nacht!
    Mfg Snake


Anmelden zum Antworten