logo

Differenza tra printf() e scanf() in C

Introduzione:

Printf() E Scanf() sono funzioni di libreria integrate nel linguaggio C che eseguono input formattato E output formattato funzioni. Queste funzioni sono definite e dichiarate in File di intestazione stdio.h . IL 'F' In printf E scanf sta per 'formattato' . Quindi, entrambe le funzioni printf() E scanf() utilizzare i codici all'interno di una stringa di formato per specificare come formattare i valori di output o di input. Dobbiamo importare il file di intestazione da utilizzare printf() E scanf() :

 #include 

In questo articolo discuteremo della differenza tra printf() e scanf(), ma prima di discutere le differenze, dobbiamo conoscere printf() e scanf() con la sua sintassi ed esempi.

Printf():

Esso stampe qualsiasi cosa in mezzo virgolette con specificatori di formato %c, %d,%f, ecc., per mostrare il valore di una variabile o di una costante e può anche avere caratteri di sequenza di escape come , per nuova linea, E scheda orizzontale , rispettivamente.

algoritmo per rsa

Sintassi:

 printf('(string) %format_specifier (string)',variable); 

Scanf():

Ci permette di leggere uno o più valori inseriti dall'utente tramite la tastiera della console. Possiamo piazzarne altrettanti specificatori di formato tutti gli input che vogliamo con o senza formato.

Sintassi:

 scanf(%format_specifier, &pointer_to_variable); 

Stringa identificatore di formato:

Nel primo parametro di printf E scanf , noi passiamo stringa di formato O stringa dell'identificatore di formato e specifichiamo il tipo di valore che l'utente inserirà.

Tipo di dati Conversione stringa di formato
Numero intero intero breve %d o % i
breve non firmato % In
firmato da tempo % ld
da tempo non firmato % lu
esadecimale senza segno % X
ottale senza segno %O
Vero galleggiante % f o % g
Doppio %lf
carattere firmato %C
carattere non firmato %C
corda %S

Ad esempio, se un utente entra venti come input, come venti è un valore intero decimale , specifichiamo tutti i valori interi decimali in C utilizzando il Identificatore di formato %d . Allo stesso modo, valori float sono specificati utilizzando %F .

esportare gimp in formato jpg

Codice di base per Printf() e Scanf():

Esempio 1:

 #include int main() { int a, b; int sum = 0, sub = 0, mul = 0; printf('Please enter the two values:'); /* Read input */ scanf('%d%d', &a, &b); sum = a+b; sub = a-b; mul = a*b; /* Print output */ printf('The sum = %d 
sub = %d 
mul = %d', sum, sub, mul); return 0; } 

Produzione:

 Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48 

Spiegazione:

Nel programma sopra, stiamo usando il file scanf() per leggere l'input dalla console e memorizzarli in variabili a&b. Successivamente, eseguiamo operazioni aritmetiche come aggiunta , sottrazione , E moltiplicazione e successivamente memorizzare i risultati nel file tre nuove variabili (Sum, Sub, Mul). Infine, utilizzando il file funzione printf() , stiamo stampando i risultati.

Esempio 2:-

 #include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; } 

Nel programma di cui sopra, scanf() legge due input dal programma anche se stiamo passando una variabile perché l'abbiamo specificata due identificatori di formato . Ricordalo sempre, In scanf()/printf() tutti i specificatori di formato che passiamo dovrebbe essere lo stesso, altrimenti potremmo riscontrare errori di runtime imprevisti.

Esempio 3:

 int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; } 

Produzione:

 5 Execution finished... 

Spiegazione:

Nel programma di cui sopra, scanf() legge solo un input dall'utente perché abbiamo specificato solo un identificatore di formato . Quindi da questo esempio concludiamo che nessuno degli input verrà preso a seconda del numero di specificatori di formato .

Esempio 4:

 #include int main() { int a; scanf('%d', a); printf('Execution finished'); } 

Produzione:

 6 Segmentation fault 

Spiegazione:

Nel programma sopra, stiamo passando il valore di una variabile a scanf() invece dell'indirizzo variabile. Porterà ad a errore in fase di esecuzione . In Linux, otterremo un errore di errore di segmentazione.

riga contro colonna

Esempio 5:

 #include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); } 

Produzione:

 the value of a = 10, the value of b = 20 

Spiegazione:

Nel programma sopra, quando printf esegue la scansione della stringa di formato, sostituirà il file identificatori di formato (%d) con i valori effettivi a cui passiamo printf() . cioè, il primo identificatore di formato verrà sostituito dal primo valore che passiamo printf(), e così via.

Differenze di base tra Printf() e Scanf()

Alcune differenze tra printf e scanf sono: -

    funzione printf() invia i dati all'output standard, ovvero alla console. Al contrario, il funzione scanf() legge i dati dall'input standard, ovvero dai dispositivi di input printf() raramente utilizza il puntatore in alcuni casi ma scanf() utilizza sempre un puntatore per assegnare valore alla variabile data. printf() E scanf() entrambi hanno lo stesso tipo di ritorno di numero intero . IL printf() restituisce il numero di caratteri che ha stampato con successo sulla console, mentre scanf() ritorna 0,1 o EOF in base all'identificatore di formato fornito.