Introducció:
Printf() i Scanf() són funcions de biblioteca incorporades en llenguatge C que funcionen entrada formatada i sortida amb format funcions. Aquestes funcions es defineixen i es declaren a fitxer de capçalera stdio.h . El 'f' en imprimirf i escanf significa 'formatat' . Per tant, ambdues funcions printf() i scanf() utilitzeu codis dins d'una cadena de format per especificar com s'han de formatar els valors de sortida o d'entrada. Hem d'importar el fitxer de capçalera per utilitzar-lo printf() i scanf() :
#include
En aquest article, parlarem de la diferència entre printf() i scanf(), però abans de parlar de les diferències, hem de conèixer el printf() i scanf() amb la seva sintaxi i exemples.
Printf():
Això impressions qualsevol cosa entre cometes dobles amb especificadors de format %c, %d,%f, etc., per mostrar un valor d'una variable o una constant i també pot tenir caràcters de seqüència d'escapada com Nou Testament per nova línia, i pestanya horitzontal , respectivament.
Gràfic de números romans 1100
Sintaxi:
printf('(string) %format_specifier (string)',variable);
Scanf():
Ens permet llegir un o diversos valors introduïts per l'usuari a través del teclat de la consola. En podem posar tantes especificadors de format tantes entrades que vulguem amb o sense format.
Sintaxi:
scanf(%format_specifier, &pointer_to_variable);
Cadena d'especificador de format:
En el primer paràmetre de imprimirf i escanf , passem cadena de format o cadena d'especificació de format , i especifiquem quin tipus de valor introduirà l'usuari.
Tipus de dades | Conversió | cadena de format |
---|---|---|
Enter | nombre enter curt | %d o % i |
curt sense signar | % en | |
signat llargament | % ld | |
fa temps sense signar | % lu | |
hexadecimal sense signe | % x | |
octal sense signar | %O | |
Real | flotar | % f o % g |
doble | %lf | |
caràcter signat | %c | |
caràcter sense signar | %c | |
corda | %s |
Per exemple, si entra un usuari 20 com a entrada, com 20 és un valor sencer decimal , especifiquem tots els valors enters decimals en C mitjançant l' especificador de format %d . De la mateixa manera, valors flotants s'especifiquen utilitzant %f .
transició d'opacitat css
Codi bàsic per a Printf() i Scanf():
Exemple 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; }
Sortida:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Explicació:
En el programa anterior, estem utilitzant el scanf() per llegir l'entrada de la consola i emmagatzemar-les en variables a i b. Després d'això, fem operacions aritmètiques com addició , resta , i multiplicació i després emmagatzemar els resultats al fitxer tres noves variables (Suma, Sub, Mul). Finalment, utilitzant el funció printf(). , estem imprimint els resultats.
Exemple 2: -
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
En el programa anterior, scanf() llegeix dues entrades del programa tot i que estem passant una variable perquè hem especificat dos especificadors de format . Recordeu sempre, En scanf()/printf() tot el especificadors de format que passem hauria de ser el mateix, sinó podríem tenir alguns errors d'execució inesperats.
Exemple 3:
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Sortida:
5 Execution finished...
Explicació:
En el programa anterior, scanf() només llegeix una entrada de l'usuari perquè només hem especificat un especificador de format . Així, a partir d'aquest exemple, concloem que no es prendrà cap de les entrades en funció del nombre de especificadors de format .
Exemple 4:
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Sortida:
6 Segmentation fault
Explicació:
En el programa anterior, estem passant el valor d'una variable a scanf() en lloc de l'adreça variable. Portarà a a error d'execució . A Linux, obtindrem un error de segmentació.
aws desplaçament cap al vermell
Exemple 5:
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Sortida:
the value of a = 10, the value of b = 20
Explicació:
En el programa anterior, quan imprimirf escaneja la cadena de format, substituirà el especificadors de format (%d) amb els valors reals als quals passem printf() . és a dir, el primer especificador de format es substituirà pel primer valor que passem printf(), etcètera.
Diferències bàsiques entre Printf() i Scanf()
Algunes diferències entre printf i scanf són: -