Ich habe folgendes Problem: Wenn ich folgenden Code ausführe, fragt mich das Programm nur nach der ersten Eingabe und nimmt für die zweite Eingabe automatisch einen Eingabewert an bzw. lässt keine zweite Eingabe zu.
Was ist an dem Code falsch bzw. wie löse ich dasProblem eleganter?
Es darf nur der C89-Standard verwendet werden.
Code: Select all
#include <stdio.h>
#include <string.h>
#define N 2
void eingabe(char *zz1){
scanf("%[0123456789abcdefABCDEF]", zz1);
}
// ***************************** main ******************************
int main()
{
char z1[20], z2[20];
printf("\n\n");
printf("\n\n \t Programm 1 \n\n");
printf("Bitte eine %d-stellige Hex-zahl eingeben: ",N);
eingabe(z1);
printf("\nlänge: %i\n",strlen(z1));
if(strlen(z1) != N)
{
printf("Falsche Eingabe. Ende.\n\n");
exit(1);
}
printf("Bitte eine %d-stellige Hex-zahl eingeben: ",N);
eingabe(z2);
printf("\nlänge: %i\n",strlen(z2));
if(strlen(z1) != N)
{
printf("Falsche Eingabe2. Ende.\n\n");
exit(1);
}
printf("Ende.\n\n");
return 0;
}