martes, 3 de diciembre de 2013

Wie Ablehnen der Daten, die die Abmessungen Overflow

Computerprogramme werden oft verwendet, um eine sinnvolle Arbeit auf Daten, die als Eingabe eingereicht durchzuführenZum Beispiel kann ein Programm geschrieben Bereich Berechnungen auf Höhe und Breite auszuführenDa jede Zahl in das Programm gesendet werden können, besteht die Möglichkeit, dass ein Eingang zu groß zu verarbeiten ist. Dies führt zu einem Überlauf, der Beschädigung von Daten verursachtSie können eine Programmiersprache wie C + + zu verwenden ablehnen Daten, die einen verursachen würde Überlauf Zustand

REJECT ÜBERLAUF



Was Sie benötigen

C + + Integrated Development Environment (IDE) wie Eclipse CDT

C + +-Compiler, wie ein GCC



Legen Sie die C + + IDE, indem Sie auf das Programmsymbol. Wenn sie geöffnet wird, wählen Sie "File / New / Project" und wählen Sie "C + +-Projekt", um eine neue C + +-Projekt zu erstellen. Ein Quellcode-Datei wird im Texteditor Teil der IDE. Diese Datei enthält eine automatisch generierte "main"-Funktion, die als Einstiegspunkt für das Programm dient. Sie werden den gesamten Code innerhalb der geschweiften Klammern, die unmittelbar unter dem "Haupt"-Funktion erscheinen platzieren.



Schreiben Sie die folgenden Variablendeklarationen zwischen den geschweiften Klammern der "main"-Funktion. Die ersten beiden Variablen werden verwendet, um Eingaben von der Tastatur zu erfassen. Die Variablen '"Länge" und "Breite" halten Dimensionen in einem Datentyp namens "short", die nur dann gespeichert, können Werte bis zu 32.767 vor überfüllt. Die endgültige Variable verwendet wird, um den Bereich der Dimensionen zu speichern, und ist vom Typ "long". Dieser Datentyp speichern kann Werte bis 2,147,483,647, was ist das Doppelte der maximal möglichen Wert, wenn Multiplikation zweier "Shorts" zusammen.



char * inputString;



char buffer [256];



kurze Länge = 0;



kurze width = 5;



langen Fläche = 0;



Schreiben Sie eine Anweisung, die Richtungen druckt für den Benutzer, um die Länge Dimension geben, wie folgt aus:



printf ("Geben Sie die Länge Dimension: \ n");



Schreiben Sie eine Anweisung, die die Eingabe des Benutzers erfasst von der Tastatur mit den Variablen "inputString" und "Puffer", wie folgt aus:



inputString = fgets (buffer, 256, stdin);



Schreiben "if"-Anweisung, dass Tests, um zu sehen, wenn der Wert die Eingabe des Benutzers ist größer als das, was ein kurzer ist in der Lage Handling. Der maximale Wert eines "short" ist in der ständigen gespeichert "SHRT_MAX." Prüfen Sie, ob der Wert positiv ist, da ein übergelaufen Wert kann negativ werden und Abmessungen sind in der Regel nur positive Werte. Die folgende "if"-Anweisung überprüft, für Überlauf und druckt eine Nachricht, wenn Überlauf auftritt:



if (atoi (inputString) SHRT_MAX utString) 0)



{Printf ("Data Abgelehnt für Überlaufen Dimension \ n");}



Schreiben "else"-Anweisung, die nur läuft, wenn der vorhergehende "if"-Anweisung wertet als falsch. Dies geschieht, wenn der eingegebene Wert im richtigen Bereich von Werten für "kurz" Datentypen ist.



sonst



{}



Schreiben zwei Aussagen, die "inputString" weist auf die "Länge" variable und multipliziert sie mit der Breite variabel. Setzen Sie die folgenden beiden Aussagen in-zwischen den geschweiften Klammern, die unmittelbar nach dem "else"-Anweisung:



Länge = atoi (inputString);



Fläche = Länge * Breite;



Schreiben Sie eine Endabrechnung, die aus druckt die Gegend. Legen Sie dazu unten die Ausführungen im letzten Schritt und in-zwischen den geschweiften Klammern des "else"-Anweisung geschrieben:



printf ("Area:% d", Bereich);



Drücken Sie die grüne Taste "Play", um das Programm auszuführen. Eine Eingabeaufforderung erscheint mit einer Textzeile fordert Sie auf, eine Zahl einzugeben. Geben Sie in 32.768 ist die um eins höher als "SHRT_MAX" und der folgende Text ausgegeben:



Daten zurückgewiesen für Überlaufen Dimension



Tipps und Warnungen

SHRT_MAX ist in der Regel 32.767, aber das ist nicht garantiert. Es ist möglich, dass "Shorts" sind in der Lage mit größeren Zahlen auf einigen Systemen. Dieses Programm wird immer noch funktionieren wie vorgesehen, aber Sie müssen die Eingabe einer größeren Zahl, um die "Data Abgelehnt" Nachricht, wenn Ihr System hat eine größere "Shorts" als Standard.



 

No hay comentarios:

Publicar un comentario