[GO] C> Geben Sie eine Zahl ein> fgets () / sscanf ()

Anordnung der Methode zur Eingabe nur numerischer Werte mit scanf () in C-Code.

Referenz http://f4.aaacafe.ne.jp/~pointc/log460.html

Referenz http://www9.plala.or.jp/sgwr-t/lib/sscanf.html

Rückgabewert Es kann 0 sein. Wenn beispielsweise "A" für str und "% d" für die Formatspezifikation angegeben ist, erfolgt keine Eingabe und 0 wird zurückgegeben.

Wenn der Rückgabewert größer als 0 ist, beurteilen Sie ihn als numerischen Wert.

http://ideone.com/3dx63s

#include <stdio.h>

int inputNumericValue() {
	int val;
	char buf[512];
	
	printf("[Bitte gebe eine Nummer ein]\n");
	fgets(buf, sizeof(buf), stdin);
	if (sscanf(buf, "%d", &val) > 0) {
		printf(">> %d\n", val);
	} else {
		printf(">> ERROR:Es ist kein numerischer Wert.\n");
	}
}

int main(void) {
	inputNumericValue();
	inputNumericValue();
	inputNumericValue();
	return 0;
}

stdin


A
3
1
4

Ergebnis


[Bitte gebe eine Nummer ein]
>> ERROR:Es ist kein numerischer Wert.
[Bitte gebe eine Nummer ein]
>> 3
[Bitte gebe eine Nummer ein]
>> 1

Recommended Posts

C> Geben Sie eine Zahl ein> fgets () / sscanf ()
ABC129 A, B, C Kommentar
A1-Notation und 26-stellige Nummer