SCNdLEAST8 problem
-
Hi,
erstmal ich bin total der neuling in c99 und würde bräuchte etwas hilfe :).
Das ist mein Problem:#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <inttypes.h> int main(void) { int_least8_t i8; int_least32_t i32; printf("Wert fuer int_least8_t eingeben : "); do {scanf("%", SCNdLEAST8 , &i8 );} while (getchar() != '\n' ); printf("Wert fuer int_least32_t eingeben: "); do {scanf("%", SCNdLEAST_32 , &i32 );} while (getchar() != '\n' ); printf("i8 : " "%10" PRIdLEAST8 "\n", i8 ); printf("i32 : " "%10" PRIdLEAST32 "\n", i32 ); return EXIT_SUCCESS; }
Bei mir wird kommt als error angezeigt:
[Error] 'int_SCNdLEAST8' undeclared (first use in this function)
[Error] expected ')' before 'SCNdLEAST_32'
Wie bring ich es zum laufen?
Wär cool wenn ein paar gute Antworten kämen.Mfg Michi
...hab DevC++ 5.5.3
-
Hast Du nicht was wichtiges vergessen .... eine Frage z.B.? :p
-
[quote="dgfsdgsg"]Hast Du nicht was wichtiges vergessen .... eine Frage z.B.? :p[/quote]
Ja des könnte man auch noch schreiben
-
Vor das 'SCNdLEAST_32' gehört kein Komma.
-
Mach die Kommas weg. Die Makros expandieren zu Zeichenkettenliteralen.
scanf("%" SCNdLEAST8 , &i8 );
Wird nach Präprozessor zu:
scanf("%" "irgendwas", &i8 ); // Macht Sinn, denn Literale werden zusammen gezogen zu "%irgendwas"
Deine Variante hingegen wird zu:
scanf("%", "irgendwas", &i8 ); // scanf funktioniert nicht so
edit: zu langsam
-
Ihr seit einfach der Hammer