diegoRodicio

Está documentación está a túa disposición sin ningún custo económico. Sen embargo, para a súa elaboración dedico moito tempo e recursos, polo que agradecería unha colaboración co que consideres oportuno. Gracias.

View Categories

🖥️ Entrada e saída de datos na terminal

📦 Importación necesaria para entrada/saída #

Para poder ler e escribir datos na terminal en Dart, é necesario importar a libraría dart:io, que contén as funcións e obxectos necesarios como stdin, stdout e stderr:

import 'dart:io';

🖥️ Saída por pantalla #

En Dart, para interactuar coa terminal, empregamos dúas funcións principais:

  • print() → Mostra información seguida dun salto de liña.
  • stdout.write() → Mostra información sen salto de liña (útil para pedir datos).

Interpolación de cadeas #

É posible a interpolación de cadeas usando o signo $.

  • Podes poñer unha variable directamente:
  print("Ola $nome");

  • Se queres executar unha expresión ou acceder a propiedades, usa chaves {}:
  print("O ano que vén terás ${idade + 1} anos");

📥 Ler datos #

Para ler datos do usuario desde a terminal, empregamos stdin.readLineSync() → Le unha liña de texto introducida polo usuario.

  • Devolve un String? (pode ser null).
  • Se queres un String non nulo, usa o operador ?? para poñer un valor por defecto.

📌 Exemplo básico de lectura e escritura #

import 'dart:io';

void main() {
  // Mostrar mensaxe inicial
  print("=== RECOPILACIÓN DE DATOS DO USUARIO ===\n");
  
  // 🔹 Solicitar nome (String)
  stdout.write("Introduce o teu nome: ");
  String nome = stdin.readLineSync() ?? "";
  
  // 🔹 Solicitar idade (int?) — pode ser nula
  stdout.write("Introduce a túa idade (ou presiona Enter para saltar): ");
  String? idadeInput = stdin.readLineSync();
  int? idade = idadeInput?.isEmpty == true ? null : int.tryParse(idadeInput ?? "");
  
  // Mostrar mensaxe de procesamento
  print("\n=== PROCESANDO DATOS ===");
  
  // Usar null-aware para dar valor por defecto á idade
  int idadeFinal = idade ?? 18; // Por defecto 18 se non se proporciona
  
  print("Nome: $nome");
  print("Idade: ${idade != null ? idade : 'Non especificada'} (usando: $idadeFinal)");
}