Funzioni dell'ingreso/uscita in C |
La lima standard dell'ingreso/uscita
|
Per effettuare, immettere ed uscita alle lime o al terminale, rifornimenti dell'UNIX un imballaggio di serie. Per usarlo, questo contiene la maggior parte delle funzioni che saranno introdotte in questa sezione, con le definizioni dei datatypes richiesti. Il vostro programma deve includere queste definizioni aggiungendo la linea per usare queste facilit�.
inizio vicino del #include <stdio.h> della lima di programma. Se non fate questo, il compilatore pu� protestare circa i datatypes o le funzioni non definiti.
|
Ingreso/uscita del carattere
|
Se non premerete la chiave RETURN allora non non cominci leggere alcun input e non stamperanno i caratteri sul terminale fino a che non ci sia una linea intera da stampare. Ci� � il pi� basso livello di uscita e di input. Fornisce il controllo molto preciso, ma � solitamente troppo fiddly per essere utile inoltre. La maggior parte dei calcolatori effettuano il buffering degli input e delle uscite. Questi includono:
- getchar
- putchar
|
getchar
|
getchar restituisce sempre il carattere seguente dell'input di tastiera come un interno. Il EOF (estremit� della lima) � restituito, se ci � un errore. � solito confrontare questo valore contro EOF prima di usando. Cos� le condizioni di errore non saranno maneggiate correttamente, se il valore di ritorno � memorizzato in un carbone, esso mai non saranno uguali a EOF.
Il seguente programma � usato per contare il numero di caratteri colti fino ad incontrare un EOF. Il EOF pu� essere generato tramite controllo di battitura a macchina - D.
|
#include <stdio.h>
main()
{ int ch, i = 0;
while((ch = getchar()) != EOF)
i ++;
printf("%d\n", i);
}
|
|
putchar
|
putchar mette la relativa discussione del carattere sull'uscita standard (solitamente lo schermo).
Il seguente programma di esempio converte tutto l'input scritto in lettere maiuscole. Applica il toupper di funzione dalla biblioteca ctype.h di conversione di carattere ad ogni carattere a sua volta per fare questo.
|
#include <ctype.h> /* For definition of toupper */
#include <stdio.h> /* For definition of getchar, putchar, EOF */
main()
{ int ch;
while((ch = getchar()) != EOF)
putchar(toupper(ch));
}
|
|
Ingreso/uscita formattato
|
Questi includono seguire:
- printf
- scanf
|
printf
|
Ci� offre pi� uscita strutturata che putchar. Le relative discussioni sono, nell'ordine; una stringa di controllo, che comandi che cosa ottengono stampati, seguiti da una lista dei valori da sostituire le entrate nella stringa di controllo. Il prototipo per il printf () �:
|
|
int printf(const char *format, ...);
|
|
Per stampare, il printf contiene una stringa di formattazione e le variabili reali. Un esempio di printf �:
|
int x = 5;
char str[] = "abc";
char c = 'z';
float pi = 3.14;
printf("\t%d %s %f %s %c\n", x, str, pi, "WOW", c);
|
|
Con l'uso della linea di formattazione, potete formattare l'uscita. Potete cambiare come la variabile particolare � disposta nell'uscita, modificando la specifica di conversione. Per esempio
|
|
. tiene conto la precisione. Ai galleggianti pure, questo pu� applicarsi. Il numero 5 � sul decimo gioco mentre il numero 10 mette 0005 oltre 10 spazi. Potete anche aggiungere - e + di destra dopo % per fare il numero ha prodotto esplicitamente come +0005. Si noti che il valore della x realmente non cambia. In altre parole, non otterrete produrre usando %-10.4d non produrrete -0005. %e siete utili per la produzione dei galleggianti usando la notazione scientifica. %le per i doppi e %Le per i doppi lunghi.
|
Per afferrare le cose da input, lo scanf () � usato. Guardar da comunque, scanf non � funzione pi� grande che la C debba offrire. Qualche gente spazzola fuori dello scanf come funzione rotta che non dovrebbe essere usata spesso. Il prototipo per scanf �:
|
L'ultimo esempio generer� un rettangolo con il angolo arrotondato:
|
int scanf( const char *format, ...);
|
|
Leggere dei dati dalla tastiera, lo scanf concede formattato. Come printf fa una stringa di controllo seguire, dalla lista degli articoli da leggere. Comunque lo scanf desidera conoscere l'indirizzo degli articoli da leggere, poich� � una funzione che cambier� quel valore. Di conseguenza i nomi delle variabili sono preceduti & dal segno. Le serie di caratteri fanno un'eccezione a questa. Poich� una stringa � gi� un indicatore del carattere, diamo i nomi delle variabili della stringa invariate da un condurre &. Controllare le entrate della stringa che i valori del fiammifero da leggere sono preceduti dal segno di percentuale in un senso simile al loro equivalente del printf. Osserva simile a printf, ma completamente non si comporta come il printf. Fare l'esempio:
|
|
Per le cose afferranti da input. Guardar da comunque, scanf non � la funzione pi� grande che la C debba offrire, scanf () � usato. Ci� che segue � l'esempio che mostra l'uso di scanf:
|
int x, args;
for ( ; ; ) {
printf("Enter an integer bub: ");
if (( args = scanf("%d", &x)) == 0) {
printf("Error: not an integer\n");
continue;
} else {
if (args == 1)
printf("Read in %d\n", x);
else
break;
}
}
|
|
|
|
Keywords:
c tutorial,
c arrays,
c atoi,
c array,
void c,
c syntax,
functions math,
c time,
c language,
c examples,
format c,
return c,
c library,
array functions,
c programs,
ansi c,
standard c,
c msdn,
c algorithm,
c example,
variable functions,
c program,
functions variables,
unix c,
variable c,
c type,
|