Gestione Errori e Output Formattato
Controllare i Valori di Ritorno
Section titled “Controllare i Valori di Ritorno”Le funzioni in C spesso restituiscono un valore che indica se l’operazione ha avuto successo. Ad esempio, la funzione puts restituisce il valore speciale EOF (End Of File) se si verifica un errore di scrittura.
#include <stdio.h>#include <stdlib.h>
int main(void) { if (puts("Hello, world!") == EOF) { return EXIT_FAILURE; } return EXIT_SUCCESS;}Output Formattato e Input Sicuro
Section titled “Output Formattato e Input Sicuro”La funzione printf permette di formattare stringhe mescolando testo e variabili:
printf("L'utente %s ha %d anni\n", "Mario", 30);Acquisire dati: il problema di scanf
Section titled “Acquisire dati: il problema di scanf”Per leggere input dall’utente (ad esempio dalla tastiera), il C fornisce nativamente la funzione scanf. Tuttavia, scanf può essere molto insidiosa per i principianti e per la sicurezza del sistema.
Invece di usare scanf, una pratica di sicurezza molto più affidabile per acquisire stringhe dall’utente è utilizzare fgets:
char nome[50];if (fgets(nome, sizeof(nome), stdin) != NULL) { // Input letto con successo entro i limiti massimi della memoria}💻 Esercizio Pratico
Section titled “💻 Esercizio Pratico”Scrivi un programma che legge un nome dallo standard input (stdin) usando fgets e poi stampa "Ciao, <nome>" usando printf.
(La funzione fgets manterrà il carattere di a capo inserito dall’utente, quindi non è necessario aggiungere \n in printf).