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