C++ programm schliest sich von alleine oO



  • chrische5 schrieb:

    Hallo

    Willst du, dass diese Meldung nicht kommt? Schau mal in die Konsolen FAQ zum Thema sofortiges Schließen verhindern.

    chrische

    Er hat das doch mit seinem system( "PAUSE" ); aufruf schon getan.

    virRux schrieb:

    hi ich hab' folgendes Problem:
    Ich habe dieses kleine Programm/Spiel geschrieben.
    doch immer wenn ich es starten will, und die erste eingabe mache kommt ( was auch soll) die cout ausgabe. Sofort danach diese typische meldung: "Drücksie eine beliebige Taste..." Wie kann ich das abschalten? habe schon viel probiert..

    Bis hier war mir nicht klar was du wolltest...

    virRux schrieb:

    Habe da an sowas wie einen befehl der alles von oben wiederholt gedacht... oO

    ...aber dann... Also das nennt man dann eine Schleife 🙂

    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    	const float code = 132; // Das würde ich später aber mit Zufall machen ;-) 
    
    	while ( true ) // Endlos!
    	{
    		float zahl;
    
    		cout << "Die Zahl befindet sich zwischen 0-200\n-HF&GL hier deine Zahl: ";
    		cin >>zahl;
    
    		if( zahl < code )
    			cout << "Daneben,\ndie zahl ist hoeher!"<<endl;        
    		if( zahl == code )
    		{
    			cout << "Yaaay! du hast die Zahl gefunden GG!"<<endl;
    			break; // Mit break springst du aus der Schleife!
    		}
    		if( zahl > code )
    			cout << "Daneben,\ndie Zahl ist niedriger!"<<endl;
    
    		cin.ignore( cin.rdbuf()->in_avail() );  // Eingabepuffer leeren. Sicher ist sicher :)
    	}
    	return 0;
    }
    

    Gruß Patrick



  • kannst du da nicht nen getchar(); einbauen??
    somit würde er doch auf nen Tastendruck warten...



  • Hallo

    Ich weiß, dass system(2pause") das Schließen verhindert, aber mir war nicht klar, ob es ihm um dem Text ging, der in der Konsole gezeigt wird.

    chrische



  • Vielen danke dummie, werds gelcih mal ausprobieren.

    PS: ne will kein zufall. ich will das mehreren freunden schicken, wer als erstes die zahl erraten aht, hat gewonnen. 😃



  • JUHU es geht 👍 👍 🙂

    jedoch noch was kleines.
    wenn ich die richtige zahl eingebe sollte das fenster noch offen bleiben. Damit man noch lesen kann, dass man die richtige zahl eingegeben hat.

    ist das möglich?



  • virRux schrieb:

    JUHU es geht 👍 👍 🙂

    jedoch noch was kleines.
    wenn ich die richtige zahl eingebe sollte das fenster noch offen bleiben. Damit man noch lesen kann, dass man die richtige zahl eingegeben hat.

    ist das möglich?

    mit getchar(); wartet er auf einen Tastendruck
    (Wurde das hier nicht schonmal gesagt?? 😉 )



  • virRux schrieb:

    JUHU es geht 👍 👍 🙂

    jedoch noch was kleines.
    wenn ich die richtige zahl eingebe sollte das fenster noch offen bleiben. Damit man noch lesen kann, dass man die richtige zahl eingegeben hat.

    ist das möglich?

    Ich würde an deiner Stelle einfach das break; weglassen.



  • Ich hab noch nicht viel Ahnung von C++ aber wenn du das

    break;
    

    weglässt schließt sich das Programm nicht mehr von selbst und die Schleife bleibt dann endlos.

    Ich hoffe ich konnte helfen.

    PS: Ich würde mich gerne registrieren aber ich bekomme das mit dem Sicherheitscode nit hin^^. Kann mir jemand sagen wann man den Buchstaben groß und wann klein schreiben muss?

    Greetz Osleff



  • Ok das mit dem registrieren hab ich dann jetz doch hinbekommen ^^. Also probiers einfach mal aus und sag mir ob es geklappt hat.

    Greetz Osleff



  • @Osleff wenn man das break weglässt springt er doch nie aus der Schleife! Die wäre ja dann endlos. Ich denke nicht das das sehr sinvoll ist?



  • Klar das er dann nie aus der Schleife springt hab ich doch gesagt:

    Osleff schrieb:

    Ich hab noch nicht viel Ahnung von C++ aber wenn du das

    break;
    

    weglässt schließt sich das Programm nicht mehr von selbst und die Schleife bleibt dann endlos.

    aber immerhin bleibt das Programm offen und man kann es immer noch "von Hand" schließen. Ist zwar nicht sehr schön aber besser als dass es sich immer schließt.

    Greetz Osleff



  • Wenn man das Ergebnis schon hat ist es doch unsinnig nach dem Ergebnis weiterzufragen.
    Ich würde eher getchar() einbauen dann wartet er auf einen Tastendruck und man kann noch in Ruhe das Ergebnis lesen.



  • virRux schrieb:

    JUHU es geht 👍 👍 🙂

    jedoch noch was kleines.
    wenn ich die richtige zahl eingebe sollte das fenster noch offen bleiben. Damit man noch lesen kann, dass man die richtige zahl eingegeben hat.

    ist das möglich?

    Lies dir das...
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-194851.html
    ...mal durch, es bewirkt, dass dein Konsolenprogram (es handelt sich doch um ein Konsolenprogramm oder nicht) gar nicht schließt.



  • DaNemeziz schrieb:

    virRux schrieb:

    JUHU es geht 👍 👍 🙂

    jedoch noch was kleines.
    wenn ich die richtige zahl eingebe sollte das fenster noch offen bleiben. Damit man noch lesen kann, dass man die richtige zahl eingegeben hat.

    ist das möglich?

    Lies dir das...
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-194851.html
    ...mal durch, es bewirkt, dass dein Konsolenprogram (es handelt sich doch um ein Konsolenprogramm oder nicht) gar nicht schließt.

    ...Und in einer Endlosschleife hängen bleibt, die eine Menge CPU-Auslastung verursacht... 🙄

    std::cin.clear(); 
    std::cin.ignore(std::cin.rdbuf()->in_avail()); 
    std::cin.get();
    

    Das sollte Abhilfe schaffen, und Resourcen schonen...

    (Außerdem finde ich, dass es ruhig auch in die C++-Faq könnte, es wird ja mehr als oft genug gefragt 🙄


Anmelden zum Antworten