C - Ingresso e uscita
Quando diciamo Input, significa inserire alcuni dati in un programma. Un input può essere fornito sotto forma di file o dalla riga di comando. La programmazione C fornisce una serie di funzioni integrate per leggere l'input dato e inviarlo al programma secondo i requisiti.
Quando diciamo Output, significa visualizzare alcuni dati sullo schermo, sulla stampante o in qualsiasi file. La programmazione in C fornisce una serie di funzioni integrate per visualizzare i dati sullo schermo del computer e salvarli in file di testo o binari.
I file standard
La programmazione C tratta tutti i dispositivi come file. Pertanto, i dispositivi come il display vengono indirizzati allo stesso modo dei file ei tre file seguenti vengono aperti automaticamente quando viene eseguito un programma per fornire l'accesso alla tastiera e allo schermo.
File standard | Puntatore file | Dispositivo |
---|---|---|
Input standard | stdin | Tastiera |
Uscita standard | stdout | Schermo |
Errore standard | stderr | Il tuo schermo |
I puntatori ai file sono i mezzi per accedere al file a scopo di lettura e scrittura. Questa sezione spiega come leggere i valori dallo schermo e come stampare il risultato sullo schermo.
Le funzioni getchar () e putchar ()
Il int getchar(void)la funzione legge il successivo carattere disponibile dallo schermo e lo restituisce come numero intero. Questa funzione legge solo un carattere alla volta. Puoi usare questo metodo nel ciclo nel caso in cui desideri leggere più di un carattere dallo schermo.
Il int putchar(int c)la funzione inserisce il carattere passato sullo schermo e restituisce lo stesso carattere. Questa funzione inserisce un solo carattere alla volta. È possibile utilizzare questo metodo nel ciclo nel caso in cui si desideri visualizzare più di un carattere sullo schermo. Controlla il seguente esempio:
#include <stdio.h>
int main( ) {
int c;
printf( "Enter a value :");
c = getchar( );
printf( "\nYou entered: ");
putchar( c );
return 0;
}
Quando il codice sopra viene compilato ed eseguito, attende che tu inserisca del testo. Quando si immette un testo e si preme Invio, il programma procede e legge solo un singolo carattere e lo visualizza come segue:
$./a.out
Enter a value : this is test
You entered: t
Le funzioni gets () e gets ()
Il char *gets(char *s) la funzione legge una riga da stdin nel buffer indicato da s fino a quando non viene terminata una nuova riga o EOF (End of File).
Il int puts(const char *s) la funzione scrive la stringa 's' e 'a' in coda alla nuova riga stdout.
NOTE:Sebbene l'uso della funzione gets () sia stato deprecato, invece di usare gets, si desidera utilizzare fgets () .
#include <stdio.h>
int main( ) {
char str[100];
printf( "Enter a value :");
gets( str );
printf( "\nYou entered: ");
puts( str );
return 0;
}
Quando il codice sopra viene compilato ed eseguito, attende che tu inserisca del testo. Quando si immette un testo e si preme Invio, il programma procede e legge la riga completa fino alla fine e la visualizza come segue:
$./a.out
Enter a value : this is test
You entered: this is test
Le funzioni scanf () e printf ()
Il int scanf(const char *format, ...) la funzione legge l'input dal flusso di input standard stdin ed esegue la scansione di tale input in base a format fornito.
Il int printf(const char *format, ...) la funzione scrive l'output nel flusso di output standard stdout e produce l'output in base al formato fornito.
Il formatpuò essere una semplice stringa costante, ma puoi specificare% s,% d,% c,% f, ecc. per stampare o leggere rispettivamente stringhe, numeri interi, caratteri o float. Sono disponibili molte altre opzioni di formattazione che possono essere utilizzate in base ai requisiti. Procediamo ora con un semplice esempio per comprendere meglio i concetti:
#include <stdio.h>
int main( ) {
char str[100];
int i;
printf( "Enter a value :");
scanf("%s %d", str, &i);
printf( "\nYou entered: %s %d ", str, i);
return 0;
}
Quando il codice sopra viene compilato ed eseguito, attende che tu inserisca del testo. Quando si immette un testo e si preme Invio, il programma procede e legge l'input e lo visualizza come segue:
$./a.out
Enter a value : seven 7
You entered: seven 7
Qui, va notato che scanf () si aspetta l'input nello stesso formato che hai fornito% se% d, il che significa che devi fornire input validi come "string integer". Se fornisci "stringa stringa" o "intero intero", verrà considerato un input errato. In secondo luogo, durante la lettura di una stringa, scanf () interrompe la lettura non appena incontra uno spazio, quindi "this is test" sono tre stringhe per scanf ().