martes, 21 de junio de 2011

Aplicaciones en Modo Consola

Estas aplicaciones utilizan la consola para la entrada y salida de información.  Este había sido la forma de comunicación entre el usuario y la pantalla hasta la aparición de las aplicaciones gráficas como formularios de windows o aplicaciones web.


En Visual Studio 2008 es fácil crear aplicaciones en modo consola, sobre todo para C#.  Es más o menos parecido a crear aplicaciones para java en modo consola.


Para hacer una aplicación en modo consola en C#, iniciemos el Visual Studio utlizando C#, vamos a File (Archivo) / New (Nuevo) / Project (Proyecto).  Aparecerá una pantalla como la siguiente

Aquí usted podrá colocar el nombre de la aplicación consola, la ubicación del proyecto y el nombre de la solución.


Un programa en modo consola solo creará el archivo Program.cs el cual tendrá la estructura siguiente



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ejemplo1
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}


El acceso a la consola lo facilita la clase Console, declarada en el espacio de nombres System. Esa clase proporciona la compatibilidad básica para aplicacionesque leen y escriben caracteres en la consola. No es necesario realizar ninguna acción para poder obtener datos de la consola a partir de la entrada estándar (teclado) o presentarlos en la salida estándar (consola) ya que estos flujos (junto con el del error estándar) se asocian a la consola de manera automática, como ocurre en C++, por ejemplo, con cincout y cerr.
Los métodos básicos de la clase Console son WriteLine y ReadLine, junto con sus variantes Write y Read:


  • WriteLine escribe una línea en la salida estándar, entendiendo que escribe el terminador de línea actual (por defecto la cadena "\r\n").
    La versión más simple de este método recibe un único argumento (una cadena) cuyo valor es el que se muestra:
    Console.WriteLine ("!Hola, " + "mundo!"); 
       // Escribe: !Hola, mundo!
    
    Otra versión permite mostrar variables de diferentes tipos (sin necesidad de convertirlas a string. La llamada tiene un número indeterminado de argumentos: el primero es una cadena de formato en la que las variables a mostrar se indican con {0}{1}, etc. y a continuación se enumeran las variables a mostrar, entendiendo que la primera se "casa" con {0}, la segunda con {1}, etc. Esta manera de mostrar los datos recuerda a la instrucciónprintf de C, que cayó en desuso con C++ ...
    int TuEdad = 25; 
       string TuNombre = "Pepe";
       Console.WriteLine ("Tienes {0} años, {1}.", TuEdad, TuNombre); 
       // Escribe: Tienes 25 años, Pepe.
    
  • El método Write hace lo mismo que WriteLine aunque no escribe el terminador de línea.
  • ReadLine lee la siguiente línea de caracteres de la secuencia de entrada estándar (el teclado, por defecto), eliminando del buffer de entrada el terminador de línea. Devuelve la cadena leida, que no contiene el carácter o los caracteres de terminación.
  • Read lee el siguiente carácter de la secuencia de entrada estándar y devuelve un valor de tipo int. La lectura se realiza del buffer de entrada y no se termina (no devuelve ningún valor) hasta que se encuentra al caracter de terminación (cuando el usuario presionó la tecla ENTER). Si existen datos disponibles en el buffer, la secuencia de entrada contiene los datos introducidos por el usuario, seguidos del carácter de terminación.


Veamos un sencillo ejemplo sobre el uso de estos métodos.

E/S simple
using System;

class PideNombre
{
   static void Main(string[] args)
   {
      Console.Write ("Introduzca su nombre: ");    // 1 
      string nombre = Console.ReadLine();          // 2
      
      Console.WriteLine ("Su nombre es: " + nombre);//3
      Console.ReadLine();                           //4
   }
}
La instrucción 1 muestra la cadena Introduzca su nombre: pero no avanza a la siguiente línea de la consola, por lo que cuando se ejecuta la instrucción 2 lo que escribe el usuario se muestra a continuación, en la misma línea. La cadena que escribe el usuario se guarda en la variable nombre y se elimina del buffer de entrada el terminador de línea. Cuando se valida la entrada (al pulsar ENTER) se avanza a la siguiente línea. La instrucción 3 muestra una cadena, resultado de concatenar un literal y la cadena introducida por el usuario. Finalmente, la instrucción 4 es necesaria para detener la ejecución del programa (realmente, la finalización del mismo) hasta que el usuario pulse ENTER. Observar que aunque el métodoReadline devuelva una cadena, éste valor devuelto no es usado. En la siguiente figura mostramos dos ejemplos de ejecución.

Saludos


No hay comentarios:

Publicar un comentario