Antwort schreiben

Online-tutorials.net Forenübersicht/C++ / C#/Warum?

Antwort schreiben
Username: Username: Passwort: Password vergessen?
Beitragssymbol:   Kein Symbol    
Funktionen:
Weitere Smiley's
                       
Lachend attention cry keep cool question happy laugh tongue Lachend attention cry keep cool question happy laugh tongue
Betreff:
Keywords: (Stichworte, die das Thema beschreiben)
Beitrag:
Optionen: E-Mail Benachrichtigung
BBCode benutzen
Datei anhängen: Erlaubt: rar zip pdf txt gif bmp jpg jpeg png

Bearbeitungshilfe...
Schauen Sie am besten in der wikipedia nach, falls Sie sich über einen Begriff nicht im klaren sind.

Mit einem klick auf Send bestätigen Sie, das Sie die Nutzungsbedingungen gelesen haben, und das Sie damit einverstanden sind.

Themenübersicht
(absteigend nach Datum sortiert)
Author Beitrag
Simon HechtHallo Takeru,

int hat in der Regel nur 4 Byte, du gibst ihm eine Zahl die höher ist als 4 Byte -> es gibt einen Overflow bei 2^31 -> die Zahl fängt bei - wieder an.

Der Overflow löst einen Fehler im Stream aus, der nicht bereinigt wird, das kannst du so machen:

[code]
cin.ignore(5); //Anzahl der Zeichen, die benutzt werden
cin >> iLoop;
cin.clear();
[/code]

Ich hoffe, das hilft dir.

Gruß,
Simon

Takeruhi!
ich bin gerade am programmieren von C++ und hab da ein Programm gefunden das einen Fehler enthaltet... es geht ja ganz normal sobald man zahlen unter zahlen unter 10000 eingibt. aber Beispielsweiße bei 29076056837465846 beginnt eine Dauerschleife.. warum?

[code]#include <iostream>

using namespace std;

int main()
{
int iLoop = 1;

// Wenn iLoop false (0) ist, dann macht die Schleife nach dem Durchgang (falls im Moment einer läuft) nicht mehr weiter.
while(iLoop)
{
cout << "Geben Sie bitte eine Zahl ein (0=Quit) ";
cin >> iLoop;

if(!iLoop) //Mit ! dreht man das Ergebnis um, wenn iLoop false (0) ist, dann wird true daraus, und wenn es true ist, wird false(0) daraus.
cout << endl << "cya" << endl << endl;
else
cout << endl << iLoop << "+2 ist " << iLoop +2 << endl;
}

return 0;

}
[/code]