Introduction:
Imprimerf() et Scanf() sont des fonctions de bibliothèque intégrées au langage C qui effectuent entrée formatée et sortie formatée les fonctions. Ces fonctions sont définies et déclarées dans fichier d'en-tête stdio.h . Le 'F' dans imprimer et scanf représente 'formaté' . Donc les deux fonctions printf() et scanf() utilisez des codes dans une chaîne de format pour spécifier comment les valeurs de sortie ou d'entrée doivent être formatées. Nous devons importer le fichier d'en-tête à utiliser printf() et scanf() :
#include
Dans cet article, nous discuterons de la différence entre printf() et scanf(), mais avant de discuter des différences, nous devons connaître printf() et scanf() avec leur syntaxe et leurs exemples.
Imprimerf() :
Il impressions n'importe quoi entre double citation avec spécificateurs de format %c, %d,%f, etc., pour afficher la valeur d'une variable ou d'une constante et peut également avoir des caractères de séquence d'échappement comme NT pour nouvelle ligne, et onglet horizontal , respectivement.
json dans l'exemple json
Syntaxe:
printf('(string) %format_specifier (string)',variable);
Scanf() :
Il nous permet de lire une ou plusieurs valeurs saisies par l'utilisateur via le clavier de la console. Nous pouvons en placer autant spécificateurs de format autant d'entrées que nous voulons avec ou sans format.
Syntaxe:
scanf(%format_specifier, &pointer_to_variable);
Chaîne de spécificateur de format :
Dans le premier paramètre de imprimer et scanf , Nous passons formater la chaîne ou chaîne de spécificateur de format , et nous spécifions quel type de valeur l'utilisateur va saisir.
Type de données | Conversion | formater la chaîne |
---|---|---|
Entier | Entier court | %d ou %i |
court non signé | % dans | |
signé depuis longtemps | % ld | |
longtemps non signé | %lu | |
hexadécimal non signé | % X | |
octal non signé | %O | |
Réel | flotter | % f ou % g |
double | %lf | |
personnage signé | %c | |
caractère non signé | %c | |
chaîne | %s |
Par exemple, si un utilisateur saisit vingt comme entrée, comme vingt est un valeur entière décimale , nous spécifions toutes les valeurs entières décimales en C en utilisant le %d spécificateur de format . De la même manière, valeurs flottantes sont spécifiés à l'aide de %F .
Code de base pour Printf() et 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; }
Sortir:
Please enter the two values:8 6 The sum = 14 sub = 2 mul = 48
Explication:
Dans le programme ci-dessus, nous utilisons le scanf() pour lire les entrées de la console et les stocker dans des variables un B. Après cela, nous effectuons des opérations arithmétiques comme ajout , soustraction , et multiplication et stockez ensuite les résultats dans le trois nouvelles variables (Sum, Sub, Mul). Enfin, en utilisant le Fonction printf() , nous imprimons les résultats.
Exemple 2 : -
#include int main() { int a; scanf('%d %d', &a); printf('Execution finished...'); return 0; }
Dans le programme ci-dessus, scanf() lit deux entrées du programme même si nous transmettons une variable car nous avons spécifié deux spécificateurs de format . Rappelez-vous toujours, dans scanf()/printf() tous les spécificateurs de format que nous transmettons devrait être le même, sinon nous pourrions avoir des erreurs d'exécution inattendues.
Exemple 3 :
int main() { int a, b; scanf('%d', &a, &b); printf('Execution finished...'); return 0; }
Sortir:
chaîne java de concaténation
5 Execution finished...
Explication:
Dans le programme ci-dessus, scanf() ne lit qu'une seule entrée de l'utilisateur car nous avons spécifié uniquement un spécificateur de format . Donc de cet exemple, nous concluons qu'aucune des entrées ne sera prise en fonction du nombre de spécificateurs de format .
Exemple 4 :
#include int main() { int a; scanf('%d', a); printf('Execution finished'); }
Sortir:
6 Segmentation fault
Explication:
Dans le programme ci-dessus, nous transmettons la valeur d'une variable à scanf() au lieu de l'adresse variable. Cela conduira à un erreur d'exécution . Sous Linux, nous obtiendrons une erreur d’erreur de segmentation.
démarque avec images
Exemple 5 :
#include int main() { int a = 10; int b = 20; printf('the value of a = %d, the value of b = %d', a, b); }
Sortir:
the value of a = 10, the value of b = 20
Explication:
Dans le programme ci-dessus, lorsque imprimer analyse la chaîne de format, il remplacera le spécificateurs de format (%d) avec les valeurs réelles auxquelles nous transmettons printf() . c'est-à-dire que le premier spécificateur de format sera remplacé par la première valeur que nous transmettons printf(), et ainsi de suite.
Différences fondamentales entre Printf() et Scanf()
Quelques différences entre printf et scanf sont : -