Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die Eingabefunktionen in der C-Sprache?

Was sind die Eingabefunktionen in der C-Sprache?

coldplay.xixi
coldplay.xixiOriginal
2020-09-01 09:27:3743889Durchsuche

Die Eingabefunktionen der C-Sprache sind: 1. Funktion scanf(), die formatierte Eingaben aus der Standardeingabe stdin liest; 2. Funktion getchar(), die ein Zeichen aus der Standardeingabe stdin erhält; 3. Funktion gets() , die die formatierte Eingabe aus der Standardeingabe stdin liest. Geben Sie stdin ein, um eine Zeile zu lesen. 4. Die Funktion getch() liest eine Zeichenfolge aus dem stdin-Stream und stoppt, wenn ein Zeilenumbruchzeichen oder EOF empfangen wird.

Was sind die Eingabefunktionen in der C-Sprache?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, c99-Version, Dell G3-Computer.

Die Eingabefunktionen der C-Sprache sind:

1, Rückgabewert von scanf1、scanf的返回值

scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。

如:

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

如果a和b都被成功读入,那么scanf的返回值就是2

如果只有a被成功读入,返回值为1

如果a和b都未被成功读入,返回值为0

如果遇到错误或遇到end of file,返回值为EOF

且返回值为int型

空白符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。

非空白符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

使用scanf函数时应该注意的事项

(1) 对于字符串数组或字符串指针变量,由于数组名和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

(2) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

(3) scanf()函数中没有精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

(4) scanf中要求给出变量地址,如给出变量名则会出错

如 scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。

(5) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。

C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

(6) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

(7) 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。

2、getchar

getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回 车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字 符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续 getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按 键.

3、getch

getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关 的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行

4、gets

Die Funktion scanf() gibt die Anzahl erfolgreich zugewiesener Datenelemente zurück und gibt EOF zurück, wenn ein Fehler auftritt das Ende der Datei lesen.

Zum Beispiel:

rrreee

Wenn sowohl a als auch b erfolgreich gelesen wurden, ist der Rückgabewert von scanf 2.

Wenn nur a erfolgreich gelesen wurde, ist der Rückgabewert 1.Wenn weder a noch b erfolgreich gelesen wurden, Der Rückgabewert ist 0

Wenn ein Fehler oder ein Dateiende auftritt, ist der Rückgabewert EOF
🎜 und der Rückgabewert ist vom Typ int🎜🎜Leerzeichen: Ein Leerzeichen führt dazu, dass die Funktion scanf() die Eingabe weglässt der Lesevorgang Ein oder mehrere Leerzeichen. 🎜🎜Nicht-Leerzeichen: Ein Nicht-Leerzeichen führt dazu, dass die Funktion scanf() beim Lesen Zeichen eliminiert, die mit dem Nicht-Leerzeichen identisch sind. 🎜🎜Dinge, auf die Sie bei der Verwendung der Funktion scanf achten sollten🎜🎜 (1) Bei String-Arrays oder String-Zeigervariablen besteht bei Verwendung der Funktion scanf () keine Notwendigkeit, da der Array-Name und der Name der Zeigervariablen selbst Adressen sind um ihnen den Operator „&“ voranzustellen. 🎜🎜(2) Zwischen jedem Formatbezeichner „%“ in der Formatzeichenfolge kann eine Ganzzahl hinzugefügt werden, um die maximale Anzahl von Ziffern in jedem Lesevorgang darzustellen. 🎜🎜(3) In der scanf()-Funktion gibt es keine Präzisionskontrolle. 🎜🎜Zum Beispiel: scanf("%5.2f",&a); ist illegal. Sie können mit dieser Anweisung nicht versuchen, eine reelle Zahl mit zwei Dezimalstellen einzugeben. 🎜🎜(4) Scanf erfordert die Angabe der Variablenadresse. Beispielsweise ist scanf("%d",a); unzulässig und sollte in scnaf("%) geändert werden. d",&a) ; ist zulässig. 🎜🎜(5) Wenn bei der Eingabe mehrerer numerischer Daten keine Nichtformatzeichen in der Formatsteuerzeichenfolge zur Trennung der Eingabedaten vorhanden sind, können Leerzeichen, TAB oder Wagenrückläufe als Intervalle verwendet werden. 🎜🎜C-Kompilierung betrachtet die Daten als beendet, wenn sie auf ein Leerzeichen, ein TAB, einen Wagenrücklauf oder unzulässige Daten stößt (wenn beispielsweise „12A“ für „%d“ eingegeben wird, handelt es sich bei A um unzulässige Daten). 🎜🎜(6) Wenn bei der Eingabe von Zeichendaten (%c) keine Nichtformatzeichen in der Formatsteuerzeichenfolge vorhanden sind, werden alle eingegebenen Zeichen als gültige Zeichen betrachtet. 🎜🎜(7) Wenn die Formatsteuerzeichenfolge Nichtformatzeichen enthält, müssen bei der Eingabe auch die Nichtformatzeichen eingegeben werden. 🎜🎜2. getchar🎜🎜getchar hat einen int-Rückgabewert. Wenn das Programm getchar aufruft, wartet das Programm darauf, dass der Benutzer die Taste drückt Bis der Benutzer die Eingabetaste drückt (das Wagenrücklaufzeichen wird ebenfalls in den Puffer eingefügt), beginnt getchar, jeweils ein Zeichen aus dem stdin-Stream zu lesen. Der Rückgabewert der getchar-Funktion ist der erste Vom Benutzer eingegebenes Zeichen. Wenn ein Fehler auftritt, wird -1 zurückgegeben und die vom Benutzer eingegebenen Zeichen werden auf dem Bildschirm angezeigt. Wenn der Benutzer mehr als ein Zeichen eingibt, bevor er die Eingabetaste drückt, werden die anderen Zeichen beibehalten Der Tastaturpufferbereich wartet darauf, dass nachfolgende getchar-Aufrufe gelesen werden. Mit anderen Worten, nachfolgende getchar-Aufrufe warten nicht darauf, dass der Benutzer eine Taste drückt, sondern lesen direkt die Zeichen im Puffer. Sie warten nicht darauf, dass der Benutzer a drückt 🎜🎜3, getch🎜🎜getch hat die gleichen Grundfunktionen wie getchar. Der Unterschied besteht darin, dass getch den Schlüsselwert direkt von der Tastatur erhält und nicht wartet Solange der Benutzer eine Taste drückt, gibt getch den vom Benutzer eingegebenen ASCII-Code zurück. Die eingegebenen Zeichen werden nicht auf dem Bildschirm angezeigt. Die Getch-Funktion wird häufig beim Debuggen von Programmen verwendet, um relevante Ergebnisse an Schlüsselpositionen anzuzeigen. Anschließend wird die Getch-Funktion zum Anhalten des Programms verwendet. Nach dem Drücken der Taste wird das Programm weiter ausgeführt <code>4. gets🎜🎜Funktion: Liest die Zeichenfolge aus dem stdin-Stream, bis sie stoppt, wenn ein Newline-Zeichen oder EOF empfangen wird, und speichert das Leseergebnis im Pufferzeiger im Zeichenarray, auf das verwiesen wird. Das Newline-Zeichen wird nicht als Inhalt des gelesenen Strings verwendet. Das gelesene Newline-Zeichen wird in einen Nullwert umgewandelt und beendet den String. 🎜🎜Rückgabewert: Wenn das Lesen erfolgreich ist, wird derselbe Zeiger wie der Parameterpuffer zurückgegeben; wenn EOF (End-of-File) oder ein Fehler während des Lesevorgangs auftritt, wird ein NULL-Zeiger zurückgegeben. Wenn Sie daher auf einen Rückgabewert von NULL stoßen, überprüfen Sie mit der Funktion ferror oder feof, ob ein Fehler aufgetreten ist oder EOF aufgetreten ist. 🎜🎜🎜Wenn Sie mehr über das Erlernen des Programmierens erfahren möchten, achten Sie bitte auf die Spalte „PHP-Schulung“! 🎜🎜🎜

Das obige ist der detaillierte Inhalt vonWas sind die Eingabefunktionen in der C-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn