Technologieaustausch

C-Sprache – printf, scanf, andere Eingabe- und Ausgabefunktionen

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

printf-Funktion

1. Allgemeines Format der printf-Funktion:


Das allgemeine Format der printf-Funktion ist printf (Formatsteuerung, Ausgabeliste).
Zum Beispiel:

printf("%d,%cn",i,c);

(1) „Formatsteuerung“

Es handelt sich um eine in doppelte Apostrophe eingeschlossene Zeichenfolge, die als „Konvertierungssteuerzeichenfolge“ oder kurz „Formatzeichenfolge“ bezeichnet wird. Es enthält zwei Informationen:
① Formatanweisung. Die Formatdeklaration besteht aus „%“ und Formatzeichen wie %d, %f usw. Seine Funktion besteht darin, die Ausgabedaten in das angegebene Format zu konvertieren und dann auszugeben. Formatdeklarationen beginnen immer mit dem Zeichen „%“.

Darunter: d stellt eine dezimale Ganzzahl dar, c stellt ein einzelnes Zeichen dar, s stellt mehrere Zeichen dar, f stellt eine Dezimalzahl dar, x stellt die Ausgabe im Hexadezimalformat dar und p stellt die Druckspeicheradresse dar, die ebenfalls im Hexadezimalformat ausgegeben wird verwendet das Operationssymbol & für variable Adressen.
② Gewöhnliche Charaktere. Gewöhnliche Zeichen sind Zeichen, die während der Ausgabe unverändert ausgegeben werden müssen. Beispielsweise können die Kommas, Leerzeichen und Zeilenumbrüche innerhalb der Doppelkommas in der obigen printf-Funktion auch andere Zeichen enthalten.


(2) „Tabellenspalte ausgeben“

Es handelt sich um einige Daten, die das Programm ausgeben muss. Dabei kann es sich um eine Konstante, eine Variable oder einen Ausdruck handeln.

Notiz:
(1) Erzwungene Konvertierung: Ganzzahlen in Dezimalzahlen umwandeln
  1. int data = 10;
  2. int chushu = 3;
  3. float result;
  4. result = (float)data/chushu;
(2) Geben Sie die Datenbreite und die Anzahl der Dezimalstellen an und verwenden Sie %m.nf
Das Format „%7.2“ wurde verwendet, um anzugeben, dass die Ausgabedaten 7 Spalten einschließlich 2 Dezimalstellen belegen. Die letzte Ziffer wird gerundet, d. h. der Näherungswert wird nach oben oder unten gebildet. Wenn Tathagata den Dezimalteil als 0 angibt, wird nicht nur die Dezimalzahl nicht ausgegeben, sondern auch der Dezimalpunkt wird nicht ausgegeben. Geben Sie die Anzahl der Dezimalstellen also nicht einfach als 0 an.
(3) Die Ausgabedaten werden mit %-m.nf nach links ausgerichtet
Das Hinzufügen eines negativen Vorzeichens vor m und n hat grundsätzlich den gleichen Effekt wie das %m.nf-Formular. Wenn die Datenlänge jedoch m nicht überschreitet, werden die Daten nach links verschoben und am rechten Ende Leerzeichen hinzugefügt.

Scanf-Funktion

1. Allgemeine Form der Scanf-Funktion


scanf (Formatsteuerung, Adresstabellenspalte)

Die Bedeutung von „Formatsteuerung“ ist dieselbe wie die der printf-Funktion. „Adresstabellenspalte“ ist eine Tabellenspalte, die aus mehreren Adressen besteht, bei denen es sich um die Adresse einer Variablen oder die erste Adresse einer Zeichenfolge handeln kann.


2.Formatieren Sie den Ton in der Scanf-Funktion


Ähnlich wie die Formatdeklaration in der Funktion printf beginnt sie mit % und endet mit einem Formatzeichen, in der Mitte können weitere Zeichen eingefügt werden.
Die Scanf-Funktion kann in die folgende Form umgeschrieben werden

scanf("a=%f,b=%f,c=%f",&a,&b,&c);


Zusätzlich zur Formatdeklaration %f enthält die Formatzeichenfolge auch einige gewöhnliche Zeichen (einschließlich „a=", „b=" und „,“).

Notiz:

(1)Adresssymbol &

Auf die „Formatsteuerung“ in der Scanf-Funktion sollte die Variablenadresse und nicht der Variablenname folgen.Wenn beispielsweise a und b ganzzahlige Variablen sind, wenn sie als geschrieben werden

scaní("%f%f%f",a,b,c);

Das ist nicht richtig. „a,b,c“ sollte in „&a,&b,&c“ geändert werden. Viele Anfänger machen diesen Fehler.

(2) Treten Sie so ein, wie es ist

Befinden sich neben der Formatdeklaration noch weitere Zeichen im „Format Control String“, sollten bei der Dateneingabe die gleichen Zeichen wie diese Zeichen an den entsprechenden Stellen eingetragen werden.Wenn da ist

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

Bei der Eingabe von Daten sollten an den entsprechenden Stellen die gleichen Zeichen eingegeben werden.d.h. Eingabe
a=1,b=3,c=2 (achten Sie auf den Eingabeinhalt)

Fügen Sie daher in scanf keine Leerzeichen (wenn Sie eine neue Zeile zur Eingabe von Leerzeichen verwenden, ist das in Ordnung) oder Kommas und andere Symbole hinzu, sondern schreiben Sie einfach die erforderlichen Eingabedaten direkt aus:

scanf("%d%d%f",&data,&data1,&data2);
(3) Zeicheneingabe

Bei der Deklaration von Eingabezeichen im Format „%c“ werden Leerzeichen und Zeichen in „Escape-Zeichen“ als gültige Zeichen eingegeben, zum Beispiel:
 

scanf("%c%c%c,&c1,&c2,&c3);

Beim Ausführen dieser Funktion sollten Sie 3 aufeinanderfolgende Zeichen ohne Leerzeichen dazwischen eingeben.
Es wäre falsch, zwischen zwei Zeichen ein Leerzeichen einzufügen.

Leerzeichen und Zeilenumbrüche sind ebenfalls Zeichen. Sie können bei der Eingabe keine Leerzeichen oder Zeilenumbrüche verwenden.

(4) Gemischte Eingabe

Wenn Sie bei der Eingabe numerischer Daten ein Leerzeichen, einen Wagenrücklauf oder eine Tabulatortaste eingeben oder auf unzulässige Zeichen stoßen (Zeichen, die nicht zu numerischen Werten gehören), gelten die Daten als beendet. Zum Beispiel:
 

scanf("%d%c%f,&a,&b,&c);

Die korrekte Eingabe lautet: 1234h7.6

Die ersten Daten entsprechen dem %d-Format. Daher geht das System davon aus, dass nach dem Wert 1234 keine Ziffern vorhanden sind. Die ersten Daten sollten hier enden, daher wird 1234 an die Variable gesendet A. Senden Sie das nachfolgende Zeichen „h“ an die Zeichenvariable b. Da %c nur die Eingabe eines Zeichens erfordert, stellt das System fest, dass die Eingabe des Zeichens beendet ist, sodass nach dem eingegebenen Zeichen kein Leerzeichen eingefügt werden muss. H'. Der Wert nach dem Zeichen „h“ sollte an die Variable c gesendet werden. Wenn 1230.26 aufgrund von Fahrlässigkeit fälschlicherweise als 123o.26 eingegeben wird, wird davon ausgegangen, dass die numerischen Daten hier enden, da der Buchstabe o nach 123 erscheint, und die folgenden Zeichen werden nicht gelesen.

Wenn wir also verschiedene Datentypen eingeben, sollten wir entsprechende Scanf-Funktionen nach Typ erstellen. Es gibt mehrere Scanf-Funktionen für verschiedene Typen.

(5) Mehrere Scanf-Funktionen

Wenn ein Programm zwei oder mehr Scanf-Funktionen enthält, betrachtet die letztere Scanf-Funktion das Zeilenumbruchzeichen nach der Eingabe der vorherigen Scanf-Funktion als ihre eigene Eingabe, was dazu führt, dass die letztere Scanf-Funktion die Eingabe nicht normal erhalten kann und daher verwendet werden muss Fügen Sie zwischen den beiden Scanf-Funktionen eine getchar() ein, um das zusätzliche Zeilenumbruchzeichen zu absorbieren.

Weitere Ein- und Ausgabefunktionen:

puts: Unterschied zu printf
(1). Zeilenumbrüche automatisch hinzufügen
(2).printf unterstützt eine Vielzahl von Ausgabemustern und gibt die Ausgabezeichenfolge aus.

getchar, putchar

Eingabe- und Ausgabeübungen:

1. Geben Sie Großbuchstaben ein und geben Sie Kleinbuchstaben aus

Hier wird die Kenntnis der ASCII-Codes genutzt. Der ASCII-Code + 32, der Großbuchstaben entspricht, ist der ASCII-Code, der Kleinbuchstaben entspricht.

So ist das Codebeispiel

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char a;
  5. char b;
  6. printf("请输入一个大写字母:");
  7. scanf("%c",&a);
  8. b = a+32;
  9. printf("其对应的小写字母为:%c",b);
  10. return 0;
  11. }