Warum?
Online-tutorials.net Forenübersicht/C++ / C#/Warum?
Antworten Neues Thema Bottom Seite 1
Autor
|
|
Nachricht nächster / vorheriger Thread
|
Takeru Einsteiger
Registriert seit: 01.2008 Beiträge:1
| Warum? hi!
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;
}
|
29.01.2008 21:11 | Profil >> Zitat >> IP gespeichert |
Keywords:C++ |
---|
Simon Online-tutorials.net Administrator
Registriert seit: 01.1970 Wohnort:Dornbirn Beiträge:1181
| Overflow, Stream Hallo 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();
Ich hoffe, das hilft dir.
Gruß,
Simon ------------------- http://www.online-tutorials.net/wiki/funktionsname
Für was Personal Firewalls GnuGP emails verschlüsseln C++ Tutorial Sicherheits Tutorials
|
30.01.2008 21:02 | Homepage >> >>Profil >> Zitat >> IP gespeichert |
Keywords:Overflow, Stream |
|
nächster / vorheriger Thread
|
Antworten Neues Thema Top Seite 1