Diferencia entre revisiones de «Programación en Ada/Unidades predefinidas/Ada.Text IO»

Contenido eliminado Contenido añadido
→‎Ejemplo de E/S por consola: Mejoras y notas de portabilidad
Línea 3:
Tiene procedimientos Get y Put para strings y caracteres; y varios paquetes genéricos anidados para la entrada/salida de otros tipos en formato texto: Decimal_IO, Enumeration_IO, Fixed_IO, Float_IO, Integer_IO y Modular_IO.
 
==Ejemplo de E/S por consola (versión Linux)==
 
{{Ada/Reservada|with}} Ada.Text_IO;
Línea 10:
{{Ada/--|Lee de entrada un número entero no dejando al usuario escribir}}
{{Ada/--|caracteres que no sean dígitos. Esta versión sólo funciona}}
{{Ada/--|correctamente en Windows. Para que funcione en Linux y otros sistemas Unix}}
{{Ada/--|sistemas Unix, hay que cambiar los valores de Intro y Back.}}
{{Ada/Reservada|procedure}} Leer_Entero {{Ada/Reservada|is}}
{{Ada/--|Para Linux cambiar por ASCII.LF}}
Intro : {{Ada/Reservada|constant}} Character := ASCII.CR;
{{Ada/--|Para Linux cambiar por ASCII.Del}}
Back : {{Ada/Reservada|constant}} Character := ASCII.BS;
Char : Character;
Fin : Boolean := False;
Cadena_Número : String (1..10);
Número : Natural := 0;
{{Ada/--|Cadena para leer el número carácter a carácter}}
{{Ada/--|El máximo de caracteres es Integer'Width - 1 porque no leemos signo}}
Cadena_Número : String (1 ..10 Integer'Width - 1);
{{Ada/Reservada|begin}}
Línea 26 ⟶ 36:
{{Ada/Reservada|if}} Ada.Characters.Handling.Is_Digit (Char) {{Ada/Reservada|then}}
Número := Número + 1;
Cadena_número(númeroNúmero) := Char;
Ada.Text_IO.Put (Char);
{{Ada/Reservada|elsif}} Char = ASCII.LFIntro {{Ada/Reservada|then}}
Fin := True;
{{Ada/Reservada|elsif}} Número>0 {{Ada/Reservada|and}} Char = ASCII.DelBack {{Ada/Reservada|then}}
{{Ada/--|Si el usuario ha pulsado la tecla backspace}}
{{Ada/--|borra el dígito escrito anteriormente}}
Línea 41 ⟶ 51:
Ada.Text_IO.New_line;
Número := Integer'Value (Cadena_Número (1 .. Número));
Ada.Text_IO.Put_Line ({{Ada/"|Has escrito:}} & Integer'Image (Número));
{{Ada/Reservada|exception}}