“Conocimientos Programación>C /C + + Programming

Cómo rechazar los datos que desbordan las Dimensiones

2011/4/12
Los programas de ordenador son a menudo utilizados para realizar algún trabajo significativo en los datos que se hayan presentado como entrada. Por ejemplo , un programa puede ser escrito para llevar a cabo los cálculos del área de dimensiones de altura y anchura . Dado que cualquier número puede ser presentado al programa , existe la posibilidad de que una entrada es demasiado grande para ser procesada . Esto da lugar a un desbordamiento , que causa la corrupción de datos . Usted puede utilizar un lenguaje de programación como C + + para rechazar los datos que podrían causar una condición de desbordamiento . Cosas que necesitará
+ entorno de desarrollo integrado ( IDE ) , como Eclipse CDT
C + + Compiler , tal GCC
Mostrar Más instrucciones
1

carga C + el C + + IDE haciendo clic en el icono del programa . Cuando se abre, seleccione " Archivo /Nuevo /Proyecto " y selecciona "C + + proyecto" para crear un nuevo proyecto de C + + . Un archivo de código fuente aparece en la parte de editor de texto del IDE. Este fichero contiene una función generada automáticamente "principal" , que sirve como punto de entrada para el programa. Va a colocar todo el código dentro de los corchetes que aparecen justo debajo de la función "main".
2

Escriba las siguientes declaraciones de variables entre las llaves de la función "main". Las dos primeras variables se utilizan para capturar la entrada desde el teclado. "Longitud" Las variables " y" ancho " tienen dimensiones de un tipo de datos llamado" corto ", que sólo pueden almacenar valores de hasta 32.767 antes de desbordarse. La última variable se utiliza para almacenar la zona de las dimensiones , y es de tipo " largo ". Este tipo de datos puede almacenar valores de hasta 2,147,483,647 , que es dos veces el valor máximo posible cuando se multiplican dos "cortos ", junto

char * InputString ; .

Char buffer [ 256 ] ;

corta longitud = 0 ;

ancho short = 5 , con Z. largo

= 0 ;
3

Escriba una declaración que imprima las instrucciones para al usuario introducir la dimensión de longitud , así:

printf ( "Introduzca la dimensión de longitud : \\ n");
4

Escribir un comunicado que recoge la entrada del usuario desde el teclado usando las variables " InputString " y "amortiguador ", así:

InputString = fgets (buffer, 256 , stdin ) ;
5

Escribir una declaración "if" que las pruebas para ver si el valor de la entrada del usuario es mayor de lo poco es capaz de manejar. El valor máximo de un " corto " se almacena en la constante " SHRT_MAX . " Compruebe si el valor es positivo , ya que un valor desbordado puede convertirse en negativo y las dimensiones son normalmente sólo valores positivos . El siguiente " si " controles declaración de desbordamiento e imprime un mensaje si se produce desbordamiento :

if ( atoi ( InputString ) > SHRT_MAX && atoi ( InputString ) > 0 ) { printf

( "Data rechazadas por dimensión desbordante \\ n") ;}
6

Escribir una declaración " más" que sólo funciona si el "if" anterior se evalúa como falsa. Esto ocurre cuando el valor de entrada está dentro del rango correcto de los valores de tipos de datos "cortas" .

Más

{ }
7

Escribe dos declaraciones que asigna el " InputString " a la variable " duración " y lo multiplica por la variable anchura. Coloque las dos declaraciones siguientes en - entre las llaves que inmediatamente siguen a la declaración " más" :
longitud

= atoi ( InputString ), con Z.

= largo * ancho ;

8

Escribir una declaración final que imprime el área. Coloque esta por debajo de las declaraciones escritas en el último paso y en medio de las llaves de la declaración " más" :

printf ( "Area :% d" , area) ;
9 < p> Pulse el botón verde "Play " para ejecutar el programa. Un símbolo del sistema aparece con una línea de texto pidiéndole que introduzca un número. Introduzca en 32768 , que es uno más de " SHRT_MAX ", y el texto que sigue es la salida :

datos rechazados por la inmensa dimensión

C /C + + Programming
El uso de un constructor por defecto C
Cómo leer una línea mediante CPP
Cómo Ajustar texto con Visual C
Cómo asignar un puntero array 2D
Cómo medir milisegundos en ANSI C
Cómo compilar un archivo H
Cómo asignar punteros
Cómo comenzar a aprender Objective C en Windows
Conocimientos Informáticos © http://www.ordenador.online