TechLead
Lección 11 de 16

Entrada y Salida (E/S)

Lee entrada y muestra salida al usuario.

Resumen Rápido

La E/S conecta tu programa con el mundo exterior. En navegadores puedes usar prompt, alertas o el DOM, mientras que en Node.js lees de stdin y escribes a stdout con métodos de consola. Entender la E/S es esencial para construir programas interactivos.

¿Qué es la E/S?

Entrada/Salida (E/S) es cómo tu programa se comunica con el mundo exterior:

  • Entrada: Datos que ENTRAN a tu programa (teclado, archivos, API)
  • Salida: Datos que SALEN de tu programa (pantalla, archivos, red)

E/S del Navegador

Salida a Consola:

console.log("Regular message");
console.warn("Warning message");
console.error("Error message");
console.table([{a: 1}, {a: 2}]); // Formatted table

Prompts de Usuario (simples pero limitados):

// Get text input
const name = prompt("What's your name?");

// Show message
alert("Hello, " + name);

// Yes/No confirmation
const confirmed = confirm("Are you sure?");

Manipulación del DOM (aplicaciones web reales):

// Output to page
document.getElementById("output").textContent = "Hello!";

// Get input from form
const input = document.getElementById("nameInput").value;

E/S en Node.js

Salida:

console.log("Output to terminal");
process.stdout.write("No newline");

Entrada (módulo readline):

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question("What's your name? ", (answer) => {
  console.log("Hello, " + answer);
  rl.close();
});

E/S de Archivos (Node.js)

const fs = require('fs');

// Read file
const data = fs.readFileSync('file.txt', 'utf8');

// Write file
fs.writeFileSync('output.txt', 'Hello, World!');

Formateando la Salida

// Template literals for complex strings
const user = { name: "Alice", score: 95 };
console.log(`User ${user.name} scored ${user.score}%`);

// JSON for data
console.log(JSON.stringify(user, null, 2));

Pruébalo Tú Mismo

Aquí tienes un ejemplo práctico que puedes probar. Copia este código y ejecútalo en la consola de tu navegador (presiona F12 para abrir las herramientas de desarrollo) o en el Playground de Código.

// Console output (works everywhere)
console.log("Hello, World!");
console.log("User:", { name: "Alice", age: 30 });

// Formatted output with template literals
const product = "Coffee";
const price = 4.99;
console.log(`${product} costs $${price.toFixed(2)}`);

// Browser: Simple user input
const userName = prompt("What is your name?");
if (userName) {
  alert("Welcome, " + userName + "!");
}

// Browser: Yes/No question
const wantsCookies = confirm("Accept cookies?");
console.log("Accepted:", wantsCookies);

// Console methods for debugging
console.warn("This is a warning");
console.error("This is an error");
console.table([
  { name: "Alice", age: 30 },
  { name: "Bob", age: 25 }
]);

// Output JSON data (useful for debugging)
const data = { users: ["Alice", "Bob"], count: 2 };
console.log(JSON.stringify(data, null, 2));
/*
{
  "users": ["Alice", "Bob"],
  "count": 2
}
*/

Puntos Clave

  • Lee entrada y muestra salida al usuario.
  • Practica con ejemplos de código reales para solidificar tu comprensión
  • Este concepto construye la base para temas más avanzados

Recursos de Aprendizaje Relacionados

Continúa tu camino de programación con estos tutoriales relacionados: