sprintf()-Problem
-
Hallo Leute!
Ich habe eine (für euch wsl. einfache) Frage:
Ich spiel gerade ein bisschen mit den stdlib-Funktionen herum, und habe etwas mit sprintf() probiert:
int main() { char Arr[] = {'X', '4'}; char cmd=0; if (Arr[0] == 'X') { if ((Arr[1] > '0') && (Arr[1] < '9')) { sprintf(cmd,"test%c\r",Arr[1]); } } printf("Command: %c", cmd); }
Warum bekomme ich hier nichts ausgegeben?
-
Weil der erste Parameter von sprintf eine Adresse sein muss. In diesem Fall also &cmd und nicht cmd. Allerdings passt in cmd nur ein Zeichen, Du schreibst aber mehrere hinein, das ist gar nicht gut, besser
char cmd[50];
anstatt
char cmd;
-
Weil der erste Parameter bei sprintf ein Zeiger auf ein char Array mit genug Platz sein muss.
Bei dir ist es nur ein char.char cmd[200] = ""; ... printf("Command: %s", cmd); // ^ Hier ändern