0Pricing
Dart Academy · Lekcja

Stdin, Stdout i argumenty procesu

Tworzenie interaktywnych programów CLI

Stdin, Stdout i argumenty procesu to bezpłatna lekcja Dart Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Dart Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Dart Academy zawiera 4 lekcji w sumie.

Trzy standardowe strumienie

Programy wiersza poleceń komunikują się za pośrednictwem trzech kanałów: stdin służy do wprowadzania danych, stdout do standardowego wyjścia, a stderr do błędów.

stdout a print

print dodaje znak nowego wiersza i zapisuje do stdout. Aby uzyskać większą kontrolę, zapisuj bezpośrednio za pomocą stdout.write — nie pojawi się wtedy dodatkowy znak nowego wiersza.

stdout.write('Loading');

Błędy trafiają do stderr

Wysyłaj ostrzeżenia do stderr, a nie do stdout. Dzięki temu właściwe dane wyjściowe pozostaną czyste, gdy użytkownicy przekażą je potokiem do innego programu.

stderr.writeln('Could not find file');

Odczyt wiersza danych wejściowych

Zadaj użytkownikowi pytanie, a następnie pobierz jego odpowiedź za pomocą stdin.readLineSync. Program wstrzyma działanie do momentu naciśnięcia przez użytkownika klawisza Enter.

final name = stdin.readLineSync();

Dane wejściowe mogą mieć wartość null

readLineSync zwraca obiekt String o typie nullable. Jeśli strumień zostanie zamknięty bez danych wejściowych, otrzymasz null, dlatego obsłuż ten przypadek.

final answer = stdin.readLineSync() ?? '';

Prosta pętla interaktywna

Połącz zapis i odczyt, aby zbudować prompt. Wyświetl pytanie, odczytaj odpowiedź, a następnie zareaguj na nią — wszystko w kilku wierszach.

stdout.write('Name? '); final n = stdin.readLineSync();

Argumenty wiersza poleceń

Funkcja main może przyjmować List elementów typu String args. Wszystko, co użytkownik wpisze po nazwie programu, trafi tam w odpowiedniej kolejności.

void main(List<String> args) { print(args); }

Odczyt jednego argumentu

Uzyskuj dostęp do args według indeksu, tak jak w przypadku każdej listy. Zawsze najpierw sprawdzaj args.isEmpty, aby brak argumentu nie spowodował awarii programu.

if (args.isNotEmpty) print(args[0]);

Analizowanie flag za pomocą args

W przypadku rzeczywistych interfejsów CLI pakiet args zamienia flagi i opcje w uporządkowany przeanalizowany wynik, zamiast wymagać ręcznego operowania indeksami.

import 'package:args/args.dart';

Ustawianie kodu zakończenia

Poinformuj powłokę o wyniku działania za pomocą exit. Zero oznacza powodzenie, a każda inna wartość sygnalizuje błąd skryptom, które wywołują program.

exit(1);

Wyłączanie trybu echa

W przypadku haseł ukryj wpisywane znaki, ustawiając stdin.echoMode na false przed odczytaniem wiersza.

stdin.echoMode = false;

Szybkie sprawdzenie

Gdzie narzędzie CLI powinno wysyłać komunikaty o błędach, aby dane przekazywane potokiem pozostały czyste?

Podsumowanie

Potrafisz już zapisywać do stdout i stderr, odczytywać dane wejściowe za pomocą stdin, przyjmować argumenty wiersza poleceń oraz ustawiać kod zakończenia. Twój interfejs CLI jest interaktywny.

Często zadawane pytania

Czy lekcja „Stdin, Stdout i argumenty procesu” jest bezpłatna?

Tak — pełny tekst „Stdin, Stdout i argumenty procesu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Dart Academy, przejdź na CoddyKit PRO. Kurs Dart Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Stdin, Stdout i argumenty procesu”?

Tworzenie interaktywnych programów CLI Ćwiczysz Dart Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Dart Academy?

Nie wymagamy żadnego doświadczenia. Dart Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Stdin, Stdout i argumenty procesu”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Dart Academy?

Tak. Każda lekcja Dart Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Odczyt i zapis plików
  2. Katalogi, ścieżki i FileSystemEntity
  3. Strumieniowe przetwarzanie dużych plików
  4. Stdin, Stdout i argumenty procesu
← Powrót do Dart Academy