scanf werte in arry

Gast #6206752
Lesenswert?

Ich lese von der console zahlen ein und speichere diese in einem Array 
(in C).

Das funktioniert auch, bekomme aber eine Warung und weiß nicht, wie ich 
die weg bekomme.
1
uint8_t input[10]
2
scanf("%u %u %u %u %u %u %u %u %u %u", &input[0], &input[1], &input[2], &input[3], &input[4], &input[5], &input[6], &input[7], &input[8], &input[9]);

Warnung:
warning: format '%u' expects argument of type 'unsigned int *', but 
argument 2 has type 'uint8_t * {aka unsigned char *}' [-Wformat=]

und das halt für alle.
Wie lese ich uint8_t richtig ein?
Gast #6206765
Lesenswert?

1
#include <inttypes.h>
2

3
4

5
scanf("%"SCNu8" %"SCNu8" %"SCNu8" %"SCNu8" %"SCNu8" %"SCNu8" %"SCNu8" %"SCNu8" %"SCNu8" %"SCNu8, &input[0], &input[1], &input[2], &input[3], &input[4], &input[5], &input[6], &input[7], &input[8], &input[9]);
Gast #6206783
Lesenswert?

... schrieb:
> %hh müsste für deine unsigned char passen

nein, da bekomme ich die Warnung:
warning: unknown conversion type character 'h' in format [-Wformat=]
außerdem bekomme ich die Warnung:
warning: too many arguments for format [-Wformat-extra-args]

habe aber genau 10 mal %hh und input[0] bis input[9]. Also auch genau 10 
mal.

zitter_ned_aso schrieb:
> Und eine for-Schleife wäre hier sehr empfehlenswert

Das ja, aber ich muss alle auf einmal einlesen. Mit einer for-schleife 
bekomme ich es nur nacheinander hin. Dann ist doof wenn man sich vertipt 
hat, dann muss man alles neu machen. so kann ich einfach noch im command 
fenster die eingabe löschen und verbessern.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren