Fundamentos de C#: Entrada y salida esenciales
Fundamentos de C#: Entrada y salida esenciales
Esta guía recorre las técnicas básicas de entrada y salida en C#, mostrando cómo leer datos del usuario y mostrar resultados de forma fiable.
Salida en C#
Para escribir datos en la consola, C# ofrece dos métodos principales:
System.Console.WriteLine()
System.Console.Write()
Aquí, System es el espacio de nombres, Console una clase dentro de ese espacio, y WriteLine y Write son sus métodos.
Ejemplo 1: Imprimir una cadena con WriteLine()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
Console.WriteLine("C# is cool");
}
}
}
Resultado:
C# is cool
Diferencia entre WriteLine() y Write()
WriteLine() muestra el texto y avanza a la siguiente línea, mientras que Write() imprime sin añadir salto de línea.
Ejemplo 2: Usando WriteLine() y Write()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
Console.WriteLine("Prints on ");
Console.WriteLine("New line");
Console.Write("Prints on ");
Console.Write("Same line");
}
}
}
Salida:
Prints on New line Prints on Same line
Imprimir variables y literales
Tanto WriteLine() como Write() pueden mostrar variables y literales.
Ejemplo 3: Variables y literales
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int value = 10; // Variable
Console.WriteLine(value); // Literal
Console.WriteLine(50.05);
}
}
}
Resultado:
10 50.05
Concatenar cadenas con el operador +
Las cadenas pueden combinarse usando el operador + durante la salida.
Ejemplo 4: Salida concatenada
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int val = 55;
Console.WriteLine("Hello " + "World");
Console.WriteLine("Value = " + val);
}
}
}
Resultado:
Hello World Value = 55
Cadenas con formato: Un enfoque más limpio
Las cadenas con formato permiten insertar marcadores de posición que se reemplazan en tiempo de ejecución, mejorando la legibilidad y reduciendo errores.
En lugar de:
Console.WriteLine("Value = " + val);
use:
Console.WriteLine("Value = {0}", val);
Aquí, {0} es un marcador para val. Múltiples variables se manejan con marcadores adicionales.
Ejemplo 5: Usando formato de cadena
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int firstNumber = 5, secondNumber = 10, result;
result = firstNumber + secondNumber;
Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
}
}
}
Salida:
5 + 10 = 15
Este método es más legible y menos propenso a errores que la concatenación manual.
Entrada en C#
La forma más sencilla de capturar entrada del usuario es Console.ReadLine(). Para entrada más granular, también están Read() y ReadKey().
Ejemplo 6: Leyendo una cadena del usuario
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
string testString;
Console.Write("Enter a string - ");
testString = Console.ReadLine();
Console.WriteLine("You entered '{0}'", testString);
}
}
}
Salida:
Enter a string - Hello World You entered 'Hello World'
Entendiendo ReadLine(), Read() y ReadKey()
- ReadLine(): Lee una línea completa del flujo de entrada y la devuelve como cadena.
- Read(): Lee el siguiente carácter y devuelve su valor ASCII.
- ReadKey(): Captura una pulsación de tecla sin esperar a Enter; útil para pausas.
Ejemplo 7: Demostrando Read() y ReadKey()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int userInput;
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
Console.WriteLine();
Console.Write("Input using Read() - ");
userInput = Console.Read();
Console.WriteLine("Ascii Value = {0}", userInput);
}
}
}
Salida:
Press any key to continue... x Input using Read() - Learning C# Ascii Value = 76
Observa que ReadKey() muestra la tecla inmediatamente, mientras que Read() captura una línea pero solo devuelve el código ASCII del primer carácter (aquí 76 para 'L').
Lectura de valores numéricos
Mientras las cadenas se leen directamente, los tipos numéricos requieren conversión. La clase Convert proporciona métodos directos.
Ejemplo 8: Convirtiendo entrada de usuario a números
using System;
namespace UserInput {
class MyClass {
public static void Main(string[] args) {
string userInput;
int intVal;
double doubleVal;
Console.Write("Enter integer value: ");
userInput = Console.ReadLine();
intVal = Convert.ToInt32(userInput);
Console.WriteLine("You entered {0}", intVal);
Console.Write("Enter double value: ");
userInput = Console.ReadLine();
doubleVal = Convert.ToDouble(userInput);
Console.WriteLine("You entered {0}", doubleVal);
}
}
}
Resultado:
Enter integer value: 101 You entered 101 Enter double value: 59.412 You entered 59.412
Los métodos ToInt32() y ToDouble() de Convert transforman la cadena de entrada al tipo numérico deseado. La lista completa de métodos de conversión está en la documentación de .NET.
Lenguaje C
- Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
- Conectar sensores analógicos a Raspberry Pi con MCP3008: cableado, configuración SPI y código Python
- Buzones en Nucleus SE: Guía práctica de configuración y uso
- Semaforos en Nucleus SE: Visión general, configuración y API esenciales
- Colas en Nucleus SE: Introducción y llamadas de servicio principales
- Expandiendo horizontes cloud: Nuevas zonas, contenedores y estrategias multicloud
- Por qué Cloud Linux impulsa seguridad, estabilidad y rendimiento en hosting compartido
- Dominando la Entrada y Salida en C++: Guía Práctica
- Dominando la entrada/salida en C: scanf() y printf() explicados
- Dominando E/S e importación de módulos en Python: Guía práctica
- Dominar Entrada y Salida en Java: Imprimir, Leer y Formatear Datos