diegoRodicio

View Categories

⌨️ Entrada e saída na terminal

⌨️ Ler por teclado

Para o proxecto deste tema necesitaremos pedir datos ao usuario. Estes programas execútanse nunha terminal, como a terminal integrada de Visual Studio Code. Non se executan en DartPad nin se introducen os datos no panel de saída do editor.

import 'dart:io'; permite usar stdin para ler e stdout para escribir. A importación vai ao principio do ficheiro, fóra de main().

  • print() escribe e pasa á seguinte liña. Non precisa ningunha importación.
  • stdout.write() escribe sen pasar á seguinte liña: resulta útil para facer unha pregunta.
  • stdin.readLineSync() espera a que escribamos unha liña e premamos Intro. Devolve String?: pode devolver null se remata a entrada.

🧪 Pedir o nome

import 'dart:io';

void main() {
  stdout.write('Como te chamas? ');
  // Se remata a entrada, usamos un texto baleiro.
  String nome = stdin.readLineSync() ?? '';
  nome = nome.trim(); // Quitamos espazos dos extremos.
  print('Benvido a 2º DAM, $nome');
}

Premer Intro sen escribir devolve '', non null. ?? non substitúe os textos baleiros.

🔢 Pedir un número

Lemos primeiro o texto e despois intentamos convertelo. int.tryParse() devolve un enteiro ou null; para decimais usamos double.tryParse().

import 'dart:io';

void main() {
  stdout.write('Cantas faltas tes? ');
  String texto = stdin.readLineSync() ?? '';
  int? faltas = int.tryParse(texto.trim()); // null se non é un enteiro.
  print('Valor lido: $faltas');
}

Este exemplo só mostra o resultado da conversión. Aínda falta comprobar se o número é válido. Despois de estudar condicións e bucles veremos como repetir a pregunta sen inventar un valor por defecto.

📦 Que significa import?

Unha importación permite usar código definido noutro lugar:

  • dart:io: unha biblioteca incluída en Dart.
  • utilidades.dart: un ficheiro noso, indicado cunha ruta relativa.
  • package:flutter/material.dart: código dun paquete; usaremos esta importación en Flutter.

Non copies todas as importacións en cada programa: engade as que necesites. A biblioteca básica dart:core, que contén String, int e print(), xa está dispoñible.

📚 Consulta: entrada e saída con dart:io – https://dart.dev/libraries/dart-io.