logo

Unterschied zwischen printf() und scanf() in C

Einführung:

Printf() Und Scanf() sind integrierte Bibliotheksfunktionen in der C-Sprache, die ausgeführt werden formatierte Eingabe Und formatierte Ausgabe Funktionen. Diese Funktionen werden in definiert und deklariert stdio.h-Headerdatei . Der 'F' In printf Und scanf steht für 'formatiert' . Also beide Funktionen printf() Und scanf() Verwenden Sie Codes innerhalb einer Formatzeichenfolge, um anzugeben, wie Ausgabe- oder Eingabewerte formatiert werden sollen. Wir müssen die Header-Datei importieren, um sie verwenden zu können printf() Und scanf() :

 #include 

In diesem Artikel werden wir den Unterschied zwischen printf() und scanf() diskutieren, aber bevor wir die Unterschiede besprechen, müssen wir printf() und scanf() mit seiner Syntax und Beispielen kennen.

Printf():

Es druckt irgendetwas dazwischen Anführungszeichen mit Formatspezifizierer %c, %d,%f, usw., um den Wert einer Variablen oder einer Konstante anzuzeigen und kann auch Escape-Sequenzzeichen wie enthalten , für Neue Zeile, Und horizontale Registerkarte , jeweils.

Rekha-Alter

Syntax:

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

Scanf():

Es ermöglicht uns, einen oder mehrere Werte zu lesen, die der Benutzer über die Tastatur an der Konsole eingegeben hat. Wir können beliebig viele platzieren Formatspezifizierer so viele Eingaben wir wollen, mit oder ohne Format.

Syntax:

 scanf(%format_specifier, &pointer_to_variable); 

Formatbezeichnerzeichenfolge:

Im ersten Parameter von printf Und scanf , wir passieren Formatzeichenfolge oder Formatspezifizierzeichenfolge und wir geben an, welche Art von Wert der Benutzer eingeben wird.

Datentyp Konvertierung Formatzeichenfolge
Ganze Zahl kurze Ganzzahl %d oder %i
kurz ohne Vorzeichen % In
lange unterschrieben % ld
lange ohne Unterschrift % lu
vorzeichenlose Hexadezimalzahl % X
vorzeichenloses Oktal
Real schweben % f oder % g
doppelt %lf
signiertes Zeichen %C
unsigniertes Zeichen %C
Zeichenfolge %S

Zum Beispiel, wenn ein Benutzer einsteigt zwanzig als Eingabe, als zwanzig ist ein dezimaler ganzzahliger Wert , geben wir alle dezimalen Ganzzahlwerte in C an, indem wir die verwenden %d Formatbezeichner . Ähnlich, Float-Werte werden mit angegeben %F .

Basiscode für Printf() und Scanf():

Beispiel 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; } 

Ausgabe:

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

Erläuterung:

CSS-Unterstreichungstext

Im obigen Programm verwenden wir das scanf() um die Eingaben von der Konsole zu lesen und sie in Variablen zu speichern a & b. Danach führen wir arithmetische Operationen aus wie Zusatz , Subtraktion , Und Multiplikation und speichern Sie die Ergebnisse später im drei neue Variablen (Sum, Sub, Mul). Schließlich durch die Verwendung der printf()-Funktion , wir drucken die Ergebnisse aus.

Beispiel 2:-

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

Im obigen Programm scanf() liest zwei Eingaben aus dem Programm, obwohl wir eine Variable übergeben, weil wir sie angegeben haben zwei Formatspezifizierer . Denken Sie immer daran, In scanf()/printf() all die Formatspezifizierer die wir übergeben, sollte derselbe sein, andernfalls kann es zu unerwarteten Laufzeitfehlern kommen.

Beispiel 3:

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

Ausgabe:

 5 Execution finished... 

Erläuterung:

Im obigen Programm scanf() Liest nur eine Eingabe vom Benutzer, da wir nur angegeben haben ein Formatbezeichner . Aus diesem Beispiel schließen wir also, dass je nach Anzahl keine der Eingaben berücksichtigt wird Formatspezifizierer .

Beispiel 4:

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

Ausgabe:

 6 Segmentation fault 

Erläuterung:

Im obigen Programm übergeben wir den Wert einer Variablen an scanf() anstelle der Variablenadresse. Es wird zu einem führen Laufzeit Fehler . Unter Linux erhalten wir einen Segmentierungsfehlerfehler.

ist Eiweißfett

Beispiel 5:

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

Ausgabe:

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

Erläuterung:

Im obigen Programm, wann printf scannt die Formatzeichenfolge und ersetzt sie Formatbezeichner (%d) mit den tatsächlichen Werten, an die wir übergeben printf() . d. h. der erste Formatbezeichner wird durch den ersten Wert ersetzt, den wir übergeben printf(), und so weiter.

Grundlegende Unterschiede zwischen Printf() und Scanf()

Einige Unterschiede zwischen printf und scanf sind:-

    printf()-Funktion gibt Daten auf die Standardausgabe, also auf die Konsole, aus. Im Gegensatz dazu ist die scanf()-Funktion liest Daten von der Standardeingabe, d. h. Eingabegeräten printf() In einigen Fällen wird der Zeiger jedoch selten verwendet scanf() verwendet immer einen Zeiger, um der angegebenen Variablen einen Wert zuzuweisen. printf() Und scanf() beide haben den gleichen Rückgabetyp ganze Zahl . Der printf() gibt die Anzahl der Zeichen zurück, die erfolgreich auf der Konsole gedruckt wurden scanf() kehrt zurück 0,1 oder EOF basierend auf dem bereitgestellten Formatbezeichner.