Guida Linguaggio C: L'Output
3 Dicembre 2007 C
   





L'Output

Le funzioni a disposizione per l'output sono le seguenti

Funzioni per l'output
Funzione Descrizione
int putc(int c, FILE *stream) Scrive un carattere nello stream indicato.
int putchar(int c) Scrive un carattere su stdout.
int puts(char *s) Scrive una stringa su stdout.
int printf(const char *format, ...) Stampa un testo formattandolo come specificato nella stringa di formato.


putc

La funzione putc scrive un carattere in uno stream. Scrive il carattere contenuto in c nello stream puntato da stream. Restituirà il carattere scritto se l'operazione di scrittura si è svolta correttamente, altrimenti restituirà EOF.

  1. #include <stdio.h>
  2.  
  3. int putc(int c, FILE *stream);

Esempio
  1. #include <stdio.h>
  2.  
  3. main()
  4. {
  5. int c;
  6.  
  7. do
  8. {
  9. c = getc(stdin);
  10. putc(c, stdout);
  11. }
  12. while (c != 32);
  13. }

In questo esempio si legge l'input da tastiera, carattere per carattere, e lo si visualizza in output sul monitor fino a quando non è inserito un particolare carattere, corrispondente al carattere ASCII 32.

putchar

La funzione putchar scrive un carattere su stdout, è equivalente a putc(c, stdout). Restituisce il carattere scritto se l'operazione di scrittura è stata svolta correttamente, in caso contrario restituirà EOF.

  1. #include<stdio.h>
  2.  
  3. int putchar(int c);

Esempio
  1. #include <stdio.h>
  2.  
  3. main()
  4. {
  5. int c;
  6.  
  7. do
  8. {
  9. c = getchar();
  10. putchar(c);
  11. }
  12. while (c != 32);
  13. }

Si legge l'input da tastiera, carattere per carattere, e lo si visualizza in output sul monitor fino a quando non è inserito un particolare carattere, corrispondente al carattere ASCII 32.

puts

Scrive una stringa su stdout sostituendo il carattere nullo '\0' presente alla fine della stringa, e che contraddistingue la fine della stringa, con il carattere newline '\n'.
puts inizia dal primo carattere della stringa e scrive i caratteri su stdout fino a quando non incontra il carattere nullo '\0'. Il carattere nullo non è scritto su stdout, al suo posto sarà scritto il carattere newline '\n'.

  1. #include <stdio.h>
  2.  
  3. int puts (const char *str);

Esempio
  1. #include <stdio.h>
  2.  
  3. main()
  4. {
  5. char msg[]="testo del messaggio";
  6.  
  7. puts(msg);
  8. }

printf

Stampa un testo formattandolo come specificato nella stringa di formato. Costruisce una stringa di testo in base alla stringa di formato e la scrive su stdout. La stringa di formato è costituita da del testo e da una o più specifiche di conversione.
Una specifica di conversione indica come effettuare una conversione da un particolare tipo ad un testo, ad esempio una specifica di conversione potrebbe indicare come convertire un tipo intero in un testo. Ogni specifica ha la forma seguente %h, dove in h vi possono essere diversi elementi che specificano il tipo, la precisione (nel caso di argomenti numerici), ed altro. Deve essere presente l'indicatore del tipo.
Dopo la stringa di formato devono essere presenti un numero di argomenti pari al numero di specifiche di conversione presenti nella stringa di formattazione.

  1. #include<stdio.h>
  2.  
  3. int printf (const char *format, ...);

Esempio
  1. #include <stdio.h>
  2.  
  3. main()
  4. {
  5. char nome[30], cognome[30];
  6. int eta;
  7.  
  8. printf("Inserire nome, cognome ed età\n");
  9. scanf("%s %s %d",&nome, &cognome, &eta);
  10. puts("I dati inseriti sono");
  11. printf("Nome:%s, Cognome:%s, Età: %d", nome, cognome, eta);
  12. }

La stringa di formattazione è la seguente "Nome:%s, Cognome:%s, Età: %d", al suo interno sono presenti tre specifiche di conversione, a seguire la stringa di conversione sono presenti tre argomenti.
La prima e la seconda specifica di conversione indicano che in quel punto della stringa che la printf costruirà dovrà essere posta una stringa ottenuta dai primi due argomenti che seguono la stringa di formattazione, la terza specifica indica che in quel punto dovrà essere posta una stringa ottenuta dalla conversione del terzo argomento (un intero) che segue la stringa di formattazione.

Le specifiche di conversione utilizzabili nella printf (e anche nella scanf) sono le seguenti

Specifiche di Conversione
Spec Formato Tipo Descrizione
c char singolo carattere
i, d int numero decimale
o int numero ottale
x, X int numero esadecimale
u int unsigned int
s char* print string, terminata da \0
f double / float formato -m.ddd
e, E double / float formato scientifico (es. -1.23e002)
g, G double / float
% stampa il carattere %


 
Guida Linguaggio C