Hallo und Willkommen.
In diesem Vortrag möchte ich darüber sprechen Eingabe von der Tastatur lesen.
Dies ist ein Grundkonzept, das ich Ich wollte, dass
ihr früh lernt, weil es sehr wertvoll ist und Viele Programme nehmen Input entgegen.
Also habe ich das schon früh zur Verfügung gestellt.
Einige der Konzepte sind nicht wird völlig klar sein.
Aber wir werden diese definitiv lernen Konzepte in anderen Abschnitten, wie wir durchgehen,
aber es ist wichtig zu lerne dies sehr früh und es ist
der printf-Funktion sehr ähnlich.
Also haben wir die Ausgabe besprochen.
Wir wissen, wie man formatiert Ausgabe mit printf.
Wir müssen jetzt ein wenig lernen Bit über Eingabe, im Wesentlichen
Eingabe vom Benutzer erhalten.
Es ist sehr nützlich, den Benutzer zu fragen Daten in ein Programm eingeben.
Wir haben über die Kommandozeile gesprochen Argumente, die Daten auf diese Weise eingeben, sind
eine Möglichkeit, dies zu tun.
Eine andere Möglichkeit besteht darin, den Benutzer zu fragen direkt, damit sie etwas in
die Tastatur eingeben können.
So erhalten Sie die Eingabe von die Tastatur, aber es wird angezeigt, geben
Sie die Eingabe ein über das Terminal die Konsole.
So geben Sie die Eingabe ein.
Die c-Bibliothek enthält mehrere Eingabefunktionen.
Wir werden scanf verwenden.
Das ist die allgemeinste Funktion.
Es ist sehr nützlich.
Es bietet verschiedene Formate, die Sie eingeben können.
Sie können also Text eingeben und dann wird es in verschiedene Formate konvertiert werden.
Also liest scanf die Eingabe von der Standardeingabestream, das ist stdin.
Scanf kann tatsächlich für verwendet werden Lesen aus Dateien auch, wenn der Eingabestream
eine Datei ist.
Aber wir werden uns keine Sorgen machen
Über all das werden wir es vorerst nur nutzen Eingaben von der Tastatur lesen.
Okay, und so vorbei Standard ist die Tastatur.
Stdin ist ein Strom.
Streams und c, drei verschiedene Streams.
Der Fehlerstrom, Standard in und Standardausgabe.
Standardmäßig in ist die Tastatur.
Also werden wir es so halten.
Und mit scanf wird es gehen Lesen Sie vom Standard in und dann basierend auf dem, was
Sie eingeben oder wie Wenn Sie die Daten speichern möchten,
sollte ich sagen, dass sie konvertiert werden Was Sie eingegeben haben, weil
das, was Sie eingeben, Text sein wird.
Es wird diesen Text in konvertieren das Format, das Sie so angegeben haben.
Es werden Formatspezifizierer verwendet genau wie die printf-Funktion.
Das Format kann also eine Folge von sein Zeichen, die als Zeichenfolge bezeichnet wird.
Das haben wir nicht studiert noch sehr detailliert.
Aber wir werden es wieder tun Wir sprechen über Datentypen.
Und dann können Sie auch angeben andere Datentypen, über die wir
sprechen werden, wie z ganze Zahlen, Zahlen im Grunde.
So können Sie Zahlen lesen.
Sie können Zeichenfolgen lesen.
Sie können Zahlen lesen, die enthalten Dezimalstellen, einzelne Zeichen,
all das nette Zeug.
Wenn der Standard in eingegeben wird von Die Tastatur, die standardmäßig verwendet wird,
ist die Eingabe von Text Über die Tastatur wird
dieser Text in das c-Programm eingefügt und es wird diesen Text konvertieren.
Und Text ist Dinge wie Buchstaben, Ziffern und Interpunktion.
Also, obwohl Sie tippen Eine Zahl, es ist immer noch Text, weil er
von der Tastatur kommt.
Wenn Sie also die Ganzzahl 2014 eingeben, Das ist eine Zahl, und im Wesentlichen tippen Sie
Zeichen zwei null eins und vier.
Und was passiert und was wird passieren, wenn es hinzufügen wird, senden
Sie diese Eingabe an das c-Programm.
Und wenn Sie diese Daten speichern möchten Als Zahl müssen Sie
diese Daten konvertieren.
Und so müssen Sie das Format angeben Geben Sie an, wie Sie es konvertieren möchten,
genau wie auf dem printf.
Denken Sie daran, wie bei printf, die Sie verwenden Prozent d, um eine Ganzzahl zu drucken.
Sie würden den Text in konvertieren eine Ganzzahl, die Prozent d auch für scanf
verwendet, wenn Sie möchten Konvertieren Sie die Zeichenfolge in eine Zahl.
Und genau das gehen wir früh für die Grundlagen zu tun.
Wir werden nur Zahlen verwenden weil wir
bisher Zahlen kennen und das nicht wirklich wissen habe noch etwas über Saiten gelernt.
Also werden wir hauptsächlich Verwenden Sie Zahlen, wenn wir eingeben.
Also scanf.
Es ist sehr ähnlich zu printf.
Aber stattdessen ist es etwas anders in bestimmten Argumenten, die es braucht.
Es wird weiterhin eine Steuerzeichenfolge verwendet gefolgt von einer Liste von Argumenten.
Also wird es etwas geben in diesen doppelten Anführungszeichen.
Die doppelten Anführungszeichen werden in der Regel enthält nur eine Sache und es
wird der Formatbezeichner sein.
Wie Sie die Daten konvertieren.
Die Steuerzeichenfolge zeigt also an die Zieldatentypen für den
eingegebenen Zeichenstrom.
Es ist dieser Formatbezeichner, Prozent d, Prozent c, Prozent s, Prozent f
für den Durchfluss und so weiter.
Die Funktion printf verwendet eine Variable Namen, Konstanten und Ausdrücke in seinen
Argumenten, weil wir das lernen.
Sie haben etwas in doppelten Anführungszeichen.
Und dann im Doppel Anführungszeichen verwenden Sie Formatbezeichner.
Und dann nach den Kommas Sie Sie können Variablen ausdrucken
oder sogar Ausdrücke ausdrucken.
Ausdrücke, über die wir sprechen werden Auch detaillierter, etwas, das im
Wesentlichen einen Wert zurückgibt.
Häufigste Art des Ausdrucks ist ein arithmetischer Ausdruck.
Die Scanf-Funktion ist unterschiedlich denn anstatt tatsächlich
Variablen anzuzeigen, wird es Verwenden Sie Variablen, auf die verwiesen wird.
Aber zum Glück Zeiger ist ein großes Konzept in c.
Du musst nichts wissen über Zeiger, um die scanf-Funktion zu
verstehen und zu verwenden.
Also mach dir darüber keine Sorgen.
Alles klar, alles was Sie tun müssen, sind Sie Ich muss drei Regeln für
die ScanF-Funktion beachten, um sie verwenden zu können.
Es wird die Nummer von zurückgeben Elemente, die es erfolgreich liest.
Wenn es also eine Variable liest, zwei Variablen, drei Variablen, das wird
zurückgegeben.
Wenn Sie scanf verwenden, um einen Wert zu lesen für
einen der grundlegenden Variablentypen, die wir diskutieren werden, wie z als int, float, double, dann musst
du nur noch das tun Variablenname, dem Argument muss ein kaufmännisches
Und vorangestellt werden.
Sie müssen nicht einmal wissen warum das ist gerade jetzt,
aber mach es einfach, jeder der grundlegenden Datentypen.
Kaufmännisches Und ist Adresse.
Und weil scanf einen Zeiger nimmt Sie müssen die Referenz de-referenzieren, Sie müssen
die Adresse übergeben.
Das dritte was du muss für scanf merken.
Wenn Sie scanf zum Lesen von a verwenden Zeichenfolge, die eine Folge von Zeichen
zu einem Zeichen ist, Sie Sie müssen kein kaufmännisches Und verwenden.
Scanf braucht also im Grunde genommen zwei Argumente, die ich Ihnen
als Beispiel zeigen werde.
Das erste Argument wird sein, wie um die eingegebenen Daten zu konvertieren.
Und wenn Sie diese Daten speichern In int verwenden Sie Prozent. Verwenden
Sie den Formatbezeichner Prozent. d.
Wenn Sie in einer Zeichenfolge speichern möchten Was wir noch nicht erfahren
haben, verwenden Sie Prozent s.
Und dann ist das zweite Argument und Abhängig von der Anzahl
der verwendeten Formatspezifizierer können viele Argumente vorhanden sein denn genau wie printf
wäre die eigentliche Variable der Variablenname.
Und wenn die Variable alles andere als ist Als Zeichenfolge verwenden Sie einfach das kaufmännische Und.
Sonst tust du nicht Verwenden Sie das kaufmännische Und.
Die Scanf-Funktion verwendet auch Leerzeichen um zu entscheiden, wie die Eingabe in separate
Felder unterteilt werden soll.
Und Leerzeichen enthält neue Zeilen, Tabulatoren und Leerzeichen.
Und noch einmal, ich werde ein Beispiel durchgehen um Ihnen
zu zeigen, was das bedeutet, weil genau wie printf viele anzeigen kann, Viele
Variablen, abhängig davon, wie viele Formatspezifizierer Sie in der haben einfache Anführungszeichen, dasselbe mit scanf.
Wenn scanf mehrere Dinge hat Innerhalb der doppelten Anführungszeichen
werden mehrere Eingaben gelesen.
Und die Eingaben gehen durch neue Zeilen geteilt werden.
Also nochmal, wenn du es versuchen willst Um zu verstehen, was scanf ist,
ist es das Gegenteil von printf.
Printf wird ganze Zahlen konvertieren, Gleitkommazahlen, Zeichenketten, all diese unterschiedlichen Daten tippt
und es wird in Text konvertiert, so
dass Sie sehen können, wie es ausgegeben wird.
Und es wird sein auf dem Bildschirm angezeigt.
Scanf ist das Gegenteil.
Es wird als Eingabe genommen Text und konvertieren Sie es in einen der verschiedenen
Datentypen wie Ints, Floats und Doubles.
Schauen wir uns also ein Beispiel an.
Dies ist ein Beispiel für Unser ein einfaches Programm.
Wir wissen, was die Hauptroutine ist.
Wir wissen, was die Include-Direktive ist.
Wir haben nichts darüber gelernt Zeichen und ganze Zahlen noch.
Aber im Grunde ganz oben Hauptfunktion, wir erstellen
zwei Variablen, weil wir speichern müssen die Daten, und wir werden
viel detaillierter über Variablen sprechen.
Aber genau wie die printf-Funktion, wieder machst du genau das Gegenteil.
Hier zeigen wir also die Ausgabe an Auf dem Bildschirm wird ein Wert eingegeben.
Scanf im Doppel Anführungszeichen haben Formatspezifizierer, die in die Eingabe
eingelesen werden können.
Und so müssen Sie die angeben Daten, die eingelesen werden
sollen, hier steht Prozent s, Prozent d.
Das heißt, wir lesen in a Zeichenfolge, dann lesen wir in einem int.
Und Sie werden feststellen, dass die Zeichenfolge hat das kaufmännische Und und scanf nach
dem ersten Komma nicht.
Und nach dem zweiten Komma haben wir eine kaufmännisches Und, weil das eine ganze Zahl ist.
Wir lesen in einer Nummer.
Und dann der printf zeigt die Ausgabe an.
Es heißt also, dass Sie dies eingegeben haben Zeichenfolge in dieser Ganzzahl, genau wie
wir wissen, was printf macht und dann Die Hauptfunktion gibt eine Null zurück.
Also gut, lassen Sie uns das durchgehen Beispiel in einer Sekunde in Codeblöcken.
Aber lassen Sie uns noch einmal wiederholen ein paar Konzepte.
Wenn ein Programm scanf verwendet, um Wenn Sie Eingaben über die Tastatur erfassen, wartet
sie darauf, dass Sie Text eingeben.
Das Programm läuft also tatsächlich anzuhalten, bis Sie die Daten eingeben.
Und dann, sobald Sie einen Text eingegeben haben.
Und wenn Sie ein Leerzeichen eingeben, Wenn Sie mehrere Dinge eingeben,
fährt das Programm fort und liest die Eingabe, sobald Sie tatsächlich
die Eingabetaste drücken.
Sie müssen die Eingabetaste drücken.
Auch hier erwartet scanf eine Eingabe in der genau das gleiche Format, das Sie angegeben haben.
Also, wenn Sie Prozent s und Prozent sagen e, das heißt,
Sie müssen eine Zeichenfolge gefolgt von einem Leerzeichen angeben, Beliebig viele Leerzeichen,
gefolgt von einer Ganzzahl, einer Zahl und einem Wort.
String ist ein Wort Ganzzahl ist eine Zahl.
Lassen Sie uns dieses Beispiel durchgehen Zeile für Zeile in Codeblöcken.
Okay, hier haben wir unsere Hauptfunktion.
Und wieder ist es wichtig zu sein Daten in ein Programm eingeben können.
Also genau wie beim printf geht es los um sehr ähnlich zu sein, und wir müssen
diesen ganzen Code nicht verstehen.
Und wir werden sogar die los Parameter, die
übergeben werden, einfache Hauptfunktion.
Wir müssen nicht Verstehe diesen ganzen Code.
Wir müssen nicht einmal verstehen Welche Variablen sind an diesem Punkt.
Variablen speichern jedoch Daten.
Im Beispiel erstellen wir ein String-Array von 100 und mit einem Semikolon und dann sind wir Außerdem
wird nur eine Ganzzahl erstellt,
genau wie in printf.
Wir haben eine ganze Zahl, aber Wir verwenden eine Zeichenfolge.
Ich möchte nur demonstrieren verschiedene Eingänge.
Dann normalerweise wann immer vor dir Rufen Sie die ScanF-Funktion auf, um Eingaben über die Tastatur zu
erhalten. Sie sind immer dabei werde dem Benutzer etwas sagen.
Sie möchten ihnen sagen, was sie eingeben sollen.
Also printf, denk dran, Zeigt Daten auf dem Bildschirm an.
Wir werden nur sagen, geben Sie einen Wert ein.
Und sie werden es tatsächlich tun Geben Sie ein Paar ein und beenden Sie es
mit einem Semikolon.
Wir müssen das sagen Benutzer etwas eingeben.
Hier sind wir jetzt Verwenden Sie die ScanF-Funktion.
Wir sagen scanf und dann in der Das erste Argument in doppelten Anführungszeichen
steht in Klammern Daten zu sein, die wir lesen werden.
Lassen Sie uns in diesem Beispiel einfach Angenommen, wir lesen
nur einen Eingabeprozentsatz d, der ein int ist.
Und dann gehen wir zu Speichern Sie diese Daten in einer
Variablen, weil wir sie betrachten möchten.
Und es wird ich sein.
Jetzt müssen wir das kaufmännische Und angeben davor, weil, denken Sie daran, diesen kleinen
Trick mit Zeigern.
Du musst es nicht wissen warum, es ist nur die Adresse.
Also wird dieser Scanf in Zeile 17 gehen Lesen Sie tatsächlich Daten von der Tastatur, bis
der Benutzer die Eingabetaste drückt.
Und dann werden diese Daten gehen in einer Variablen namens I gespeichert werden.
Also wollen wir jetzt einfach Drucken Sie aus, was wir eingegeben haben.
Also hier werden wir nur sagen: Wir werden einen Zeilenvorschub hinzufügen, damit er
lesbar ist Verwenden Sie unsere Escape-Sequenz, Backslash n, und
wir werden es Ihnen sagen.
Sie haben Prozent d eingegeben und wir gehen um den Wert der Variablen anzuzeigen.
Und wir werden es auch tun Setzen Sie einen Zeilenvorschub nach.
Also der Wert der Variablen das wir anzeigen wollen ist i.
Wir werden enden es mit einem Semikolon.
Und dann ist das unser Programm.
Also nochmal Ausgabe drucken, fragen ein Wert, der eine Eingabezeile 17 liest und angibt, welche Daten wir sind Lesen
ist eine ganze Zahl, in der es gespeichert wird, ich benutze ein kaufmännisches
Und und dann Drucken Sie aus, was wir gerade eingegeben haben.
Also lasst uns das bauen und laufen lassen.
Und Sie werden sehen, dass das Programm startet und dann wird angehalten, weil Sie einen
Wert eingeben sollen.
Es heißt, geben Sie einen Wert ein.
An dieser Stelle muss ich also eine eingeben Zahl, die ich in eine Zeichenfolge konvertieren kann, weil
genau das passiert.
Also hier werde ich nur 56 sagen.
Und dann drücke ich die Eingabetaste.
Es lief zweimal, weil mein Virenscanner.
Also werde ich 56 sagen und dann eintreten.
Und dann druckt es aus, ich habe 56 eingegeben.
So konnte ich Informationen eingeben, Nummer und es speicherte es in einer Variablen.
Jetzt wie bei printf, Sie können sie tatsächlich mehrere Dinge
eingeben lassen und in mehreren Variablen speichern.
Also hier, nachdem sie in einem enden Ganzzahl, ich werde noch
ein Prozent sagen, Formatbezeichner Prozent s, Das heißt, ich möchte, dass sie eine Zeichenfolge eingeben, die
nur ein Wort sucht.
Also hier, denk dran, wenn es ein Wort ist, ich Sie müssen kein kaufmännisches Und angeben.
Also werde ich nur sagen rühren, ich möchte diese Daten
im variablen Speicher speichern.
Und wieder lernen wir etwas über Variablen.
Und dann gehe ich um es einfach auszudrucken.
Und ich habe so eine weitere Variable hinzugefügt Sie kennen den Druck und ich
werde nur Doppelpunkte setzen, bevor Sie auch haben um das Format anzugeben,
das Sie drucken, also sind sie Prozent s.
Hoffentlich ist das klar.
Ich werde jetzt in zwei lesen Eingaben, die durch Leerzeichen getrennt sind, werden in
zwei Variablen gespeichert, I. und rühre und zeige sie dann an.
Also jetzt, wenn wir bauen und rennen.
Also hier werde ich meine eingeben Nummer 22, ich werde das Leerzeichen drücken und dann meinen Namen eingeben und dann werde
ich zurück drücken.
Wenn ich das mache, das Programm wird pausieren und die
Nummer I anzeigen eingegeben und dann die Zeichenfolge.
Also zeigt es 22 und Jason.
So können Sie also bekommen Eingabe vom Benutzer, einfache vier
oder fünf Codezeilen.
Eine andere schnelle Sache, die ich zeigen möchte Sie sind, wie Sie in einem Doppel lesen können.
Also später im Unterricht bist du wird gezeigt, wie man in float liest
und das wird normalerweise verwendet ein Format angegeben Prozent f.
Aber wenn Sie doppelt laufen und lesen, Es ist eigentlich
ein bisschen anders, wenn Sie Prozent lf verwenden, also irgendwie Behalte dies im Hinterkopf.
Wenn ich einen Variablennamen erstelle, verdopple x und dann benutze ich scanf, um das einzulesen, ich muss es
mit Prozent LF einlesen.
Das ist das Format Bezeichner, den Sie verwenden möchten.
Und dann wieder genau wie die Bei anderen verwenden Sie das kaufmännische
Und als Adresse und sagen x.
Und so können Sie speziell in einem Doppel lesen.
Und das ist anders als in einem Fluss zu lesen.
Behalten Sie dies also im Hinterkopf.
Wenn Sie dies ausführen, werden Sie feststellen es funktioniert ziemlich einfach.
Und Sie können Eingaben lesen ein Doppel lesen.
Also mach einfach weiter und lass das laufen.
Und so wird es fragen doppelt, ich habe nicht wirklich viel gemacht.
Und das verdoppelt sich wie 77. 8 und dann lesen wir es ein und speichern es,
es ist ziemlich einfach.
Der Scanf ist also sehr nützlich wie ich schon sagte.
Andere Dinge mit dem scanf Sie werden feststellen, dass beim
Durchlaufen des Kurses dieser Scanf angezeigt wird funktioniert manchmal nicht so gut.
Sie können f get s für andere Dinge verwenden.
Das Hauptproblem bei scanf ist Wenn Sie einlesen, lesen Sie nur ein,
bis Sie ein Leerzeichen sehen.
Und wenn Sie versuchen zu verwenden scanf, Sie versuchen
es mehrmals in einer Funktion aufzurufen.
Bei anderen Kombinationen kann es sein funktioniert nicht
sehr gut, weil was passiert, wenn Sie die treffen Zurück-Taste auf
der Tastatur, es wird nicht Lesen Sie diese Eingabetaste, da sie nur
in ein Wort eingelesen wird.
Und so geht es nicht um den Zeilenvorschub zu erhalten.
Wenn Sie das nächste Mal scanf verwenden, Es wird diese Zeile
sofort überspringen und es wird gehen Zeilenvorschub einlesen.
Das ist also ein Problem, das Sie sehen werden Wenn
Sie mehrere Scanfs nacheinander in ein Programm schreiben,
Sie werden feststellen, dass die anderen Scanfs nicht ausgeführt werden, weil Sie lesen im Zeilenvorschub.
Ein sehr einfacher Weg, um das zu umgehen ist direkt nachdem Sie einen Scanf durchgeführt haben, rufen Sie einfach
git char an und dann rufen Sie an ein anderer Scanner, aber das ist eher ein Konzept,
über das später gesprochen werden soll.
Dies war nur, um Ihnen zu zeigen, wann Wenn Sie mit scanf doppelt lesen,
stellen Sie sicher, dass Sie Prozent LF verwenden.
Und wieder ist dies nützlich, weil Einige unserer Herausforderungen werden Sie darauf ausrichten, Eingaben vom
Benutzer zu erhalten Um nützliche Dinge zu tun und verschiedene Konzepte
zu lernen, sind wir es in der Lage, Eingaben vom Benutzer zu erhalten.
Ich hoffe das hat geholfen.
Und wieder, mach dir keine Sorgen um
einige von diesen Konzepten, dass Sie die Dinge nicht vollständig verstehen Wie Variablen
und Strings werden wir all das diskutieren Vielen Dank.