0Pricing
Zig Academy · Lezione

Leggere file e stdin

Trasmetta l'input al programma.

Leggere file e stdin è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.

Gli strumenti consumano input

Una CLI utile di solito legge qualcosa: un file indicato da voi oppure del testo passato tramite pipe. Zig offre modi chiari ed espliciti per fare entrambe le cose. 📥

Aprite un file tramite percorso

Usate std.fs.cwd per ottenere la directory corrente, quindi openFile per aprire in lettura un percorso relativo a essa.

const file = try std.fs.cwd().openFile(path, .{});

Chiudete sempre ciò che aprite

Un file aperto è una risorsa di vostra proprietà. Associate all'apertura un defer file.close(), così la risorsa viene liberata indipendentemente da come termina la funzione.

defer file.close();

Leggete l'intero file

Per caricare tutto in una volta, chiamate readToEndAlloc passando un allocator e un limite di dimensione. Restituisce i byte come slice di vostra proprietà.

const data = try file.readToEndAlloc(a, 1024 * 1024);

Liberate i byte in seguito

Lo slice restituito risiede nell'heap, quindi ne siete proprietari. Aggiungete defer a.free(data) per liberare il buffer quando avete finito di usarlo.

defer a.free(data);

Il limite di dimensione è una protezione

L'argomento max-bytes vi protegge da un file enorme che consumerebbe tutta la memoria. Scegliete un limite adatto agli input realistici del vostro strumento.

Acquisite lo standard input

Per leggere il testo passato tramite pipe, usate std.io.getStdIn. Restituisce un file proprio come quello che avete aperto, quindi potete usare le stesse chiamate di lettura.

const stdin = std.io.getStdIn();

Leggete tutto stdin

Richiedete un reader a stdin e chiamate readAllAlloc. Raccoglie tutto ciò che arriva tramite pipe, fino alla fine dell'input, in un unico slice di vostra proprietà.

const input = try stdin.reader().readAllAlloc(a, 1024 * 1024);

Leggete riga per riga

Per l'elaborazione in streaming, readUntilDelimiterOrEof di un reader inserisce una riga alla volta in un buffer e restituisce null quando l'input termina.

const line = try r.readUntilDelimiterOrEof(&buf, '\n');

Usate un buffer per la velocità

Ogni lettura diretta può essere una chiamata di sistema. Racchiudete un reader in std.io.bufferedReader per raggruppare molte letture piccole in un numero minore di operazioni più rapide.

var br = std.io.bufferedReader(file.reader());

File o pipe: stesso codice

Poiché sia un file sia stdin espongono un reader, la logica di analisi non deve sapere quale dei due ha ricevuto. È una progettazione pulita e riutilizzabile. ✨

Controllo rapido

Ricordate come trasformare i byte di un file in qualcosa che potete utilizzare.

Riepilogo

Avete aperto i file con openFile, li avete letti interamente o riga per riga, avete acquisito il testo da stdin e liberato ogni buffer. Input gestito. 🎯

Domande Frequenti

La lezione «Leggere file e stdin» è gratuita?

Sì — il testo completo di «Leggere file e stdin» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.

Cosa imparerò in «Leggere file e stdin»?

Trasmetta l'input al programma. Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Zig Academy?

Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Leggere file e stdin»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Zig Academy?

Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Leggere gli argomenti della riga di comando
  2. Leggere file e stdin
  3. Scrivere l'output e i codici di uscita
  4. Creare il pacchetto e rilasciare il binario
← Torna a Zig Academy