---
title: ⌨️ Entrada e saída na terminal
description: "## ⌨️ 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…"
url: "https://www.drodicio.com/docs/dart/comezando-con-dart/e_s/"
updated: "2026-09-24"
category: Tema 1. Comezando con Dart
---

# ⌨️ 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

```dart
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()`.

```dart
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](https://dart.dev/libraries/dart-io).
