Forum: PC Hard- und Software scanf werte in arry


von Jens (Gast)


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?

von Jens (Gast)


Lesenswert?

Oh, falsches Forum,
kann das einer verschieben?

von ... (Gast)


Lesenswert?

%hh müsste für deine unsigned char passen

von Jemand (Gast)


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]);

von zitter_ned_aso (Gast)


Lesenswert?

Und eine for-Schleife wäre hier sehr empfehlenswert

von Jens (Gast)


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.

von zitter_ned_aso (Gast)


Lesenswert?

1
%hhu
2
3
//besser
4
5
scanf("%"SCNu8)

von zitter_ned_aso (Gast)


Lesenswert?

zitter_ned_aso schrieb:
> scanf("%"SCNu8, &number)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.