Guida Linguaggio C: L'Input | |||||||
3 Dicembre 2007 | C |
![]() ![]() ![]() |
|
|
![]() |
Introduzione
In C esistono tre stream predefiniti, stdin (Standard Input), stdout (Standard Output) e stderr (Standard Error). Il file stdin è associato alla tastiera, ogni lettura da tastiera viene vista come una lettura dal file stdin, il file stdout è associato al dispositivo di visualizzazione (il monitor), ogni scrittura sul file stdout viene vista come una scrittura sul monitor, il file stderr è associato tipicamente con il monitor ed è utilizzato per visualizzare messaggi di errore, ogni scrittura sul file stdout viene vista come una scrittura sul monitor.#include <stdio.h>
FILE *stdin;
FILE *stdout;
FILE *stderr;
L'Input
Le funzioni a disposizione per l'input sono le seguentiFunzione | Descrizione | |
---|---|---|
int | getc(FILE *stream) | Legge un carattere dallo stream indicato e restituisce il carattere letto convertendolo in un intero. |
int | getchar(void) | Legge un carattere da stdin. |
int | scanf(char *format, args ...) | Legge una sequenza di caratteri da stdin, convertendoli in base alla stringa di formattazione format. |
char* | gets (char* s) | Legge una riga da stdin. |
getc
La funzione getc legge un carattere dallo stream indicato e restituisce il carattere letto convertendolo in un intero. Se si è raggiunta la fine del file restituisce EOF, altrimenti restituisce il carattere letto convertito in un intero. Se si è verificato un errore restituisce EOF.#include <stdio.h>
int getc(FILE *f);
Esempio
#include <stdio.h>
main()
{
int c;
do
c = getc(stdin);
while (c != 32);
}
Nell'esempio si leggono caratteri dallo standard input (stdin) fino a quando non viene digitato un particolare carattere, corrispondente al carattere ASCII 32.
getchar
La funzione getchar() legge un carattere da stdin. Equivale a getc(stdin). Se si raggiunge la fine del file restituisce EOF, se si verifica un errore restituisce EOF.#include<stdio.h>
int getchar(void);
Esempio
#include <stdio.h>
main()
{
int c;
do
c = getchar();
while (c != 32);
}
Nell'esempio si leggono caratteri dallo standard input (stdin) fino a quando non viene digitato un particolare carattere, corrispondente al carattere ASCII 32.
scanf
La funzione scanf() legge una sequenza di caratteri da stdin e li pone nelle variabili, i cui puntatori sono passati come argomenti della funzione, convertendoli in base alla stringa di formattazione format.#include <stdio.h>
int scanf(const char *format, ...);
Esempio
#include <stdio.h>
main()
{
char nome[30], cognome[30];
int eta;
printf("Inserire nome, cognome ed età\n");
scanf("%s %s %d",&nome, &cognome, &eta);
}
Viene letta una sequenza di caratteri che viene posta, dopo aver convertito i caratteri come specificato nella stringa di formato ("%s %s %d"), nelle variabili indicate.
Relativamente alla formattazione, le specifiche di conversione che si possono usare nella stringa di formattazione sono le stesse che si possono utilizzare nella printf e viceversa.
gets
La funzione gets legge una riga dallo standard input e la memorizza nell'area di memoria puntata da s. Legge caratteri dallo standard input fino a quando non incontra un carattere di newline o fino a quando non incontra la fine del file.Restituisce la sequenza di caratteri letta, priva del carattere newline o di EOF, aggiungendo come ultimo carattere il carattere nullo ('\0'), se dopo aver letto alcuni caratteri si arriva alla fine del file restituisce NULL e quei caratteri letti sono restituiti in s. Se si verifica un errore restituisce NULL.
#include <stdio.h>
char* gets (char* s);
Esempio
#include <stdio.h>
main()
{
char nome[30], cognome[30];
printf("Inserire il nome\n");
gets(nome);
printf("Inserire il cognome\n");
gets(cognome);
}
La gets legge la sequenza di caratteri dallo stdin, fino a quando non incontra newline o EOF, e inserisce i caratteri all'interno dell'array nome, aggiungendo come ultimo carattere il carattere nullo.
Analogamente in seguito legge una nuova sequenza di caratteri, fino a quando non incontra newline o EOF, e li inserisce nell'array cognome, aggiungendo come ultimo carattere il carattere nullo.
Guida Linguaggio C
- Introduzione
- Direttive
- Costanti, Tipi, Variabili
- Operatori
- L'input
- L'Output
- Controlli
- Funzioni
- Array
- Puntatori
- Stringhe
- I File
- L'Input da File
- L'Output su File