Edb-programmer er ofte bruges til at udføre nogle meningsfuldt arbejde på data, der er sendt til det som input. For eksempel kan et program være skrevet til at udføre området beregninger på højde-og breddemål . Eftersom enhver nummer kan indsendes til programmet , der er den mulighed, at et input er for stor til at blive behandlet . Dette resulterer i et overløb , som forårsager ødelæggelse af data . Du kan bruge et programmeringssprog som C + + til at afvise data , der ville forårsage et overløb tilstand. Ting du skal
C + + Integrated Development Environment (IDE ), såsom Eclipse CDT
C + + Compiler , sådan en GCC
vise flere Instruktioner
1
Ilæg C + + IDE ved at klikke på programmets ikon . Når den åbner , skal du vælge "File /New /Project" og vælg " C + + projekt" at oprette en ny C + + projekt. En kilde kode fil vises i teksteditoren del af IDE. Denne fil indeholder en automatisk genereret "main "-funktion , der tjener som en indgang for dit program. Du vil placere alle dine kode i de krøllede parenteser , der vises umiddelbart under "main "-funktionen .
2
Skriv følgende variable erklæringer mellem de krøllede parenteser i " main" -funktionen. De første to variabler bruges til at fange input fra tastaturet . De variabler ' "længde " og " bredde " hold dimensioner i en datatype kaldet " short ", som kun kan lagre værdier op til 32.767 før overfyldte. Den endelige variabel bruges til at lagre det område af dimensioner , og er af typen "lang ". Denne datatype kan lagre værdier op til 2.147.483.647 , hvilket er det dobbelte af den maksimale værdi mulig, når multiplicere to " shorts " sammen
char * inputString ; .
Char buffer [ 256 ] ;
korte længde = 0;
kort width = 5;
lange område = 0;
3
Skriv en erklæring , der udskriver retninger brugeren til at indtaste længden dimension , som dette:
printf ("Indtast længden dimension : \\ n ");
4
Skriv en erklæring , der fanger brugerens input fra tastatur ved hjælp af variablerne " inputString " og " buffer ", som dette : Hej
inputString = fgets ( buffer , 256, stdin ),
5
Skriv et "hvis" erklæring om, at tests at se, om værdien brugeren input er større end hvad en kort er i stand til håndtering. Den maksimale værdi af en "kort" er gemt i konstant " SHRT_MAX . " Kontroller at se, hvis værdien er positiv, idet en overflowed værdi kan blive negativ og dimensioner er typisk kun positive værdier. Følgende "hvis" erklæring kontrol af overløb og udskriver en meddelelse, hvis overløb opstår:
if ( atoi ( inputString ) > SHRT_MAX && atoi ( inputString ) > 0)
{ printf ( "Data afvist overfyldte dimension \\ n" );}
6
Skriv et " andet " erklæring , der kun kører , hvis den forudgående "hvis" erklæring vurderer som falsk . Dette sker, når værdien input er inden for det rigtige udvalg af værdier for "korte" datatyper.
Ellers
{}
7
Skriv to udsagn, der tildeler den " inputString " til " længde" variabel og multiplicerer det med bredden variabel. Placer følgende to udsagn i - mellem de krøllede parenteser , der umiddelbart følger " ellers " erklæring :
længde = atoi ( inputString )
areal = længde * bredde
< br > 8
Skriv en endelig opgørelse , der udskriver området. Placer denne under de udsagn skrevet i det sidste trin, og i-mellem de krøllede parenteser i " andet " erklæring : Hej
printf (" Område: % d " , område ),
9 < p> Tryk på den grønne "Play" -knappen for at udføre programmet. En kommandoprompt vises med en tekstlinje beder dig om at indtaste et nummer . Indtast i 32.768 , hvilket er en højere end " SHRT_MAX ", og følgende tekst er output:
data afvist overfyldte dimension