c int comparrison for finish loop -
i have following function do while
loop inside:
void getfivenumericvalues() { int validationresult; char input[5]; { printf("please enter 5 digits:\n"); validationresult = scanf("%s", &input); printf("validation result: %d\n", validationresult); } while (validationresult != 1); // while (!(validationresult == 1)); // while (validationresult > 1 || validationresult < 1); }
the loop doesn't finish when validationresult == 1
.
missing here?
input[]
small hold 5 character string, since needs hold terminating '\0'
in addition 5 input characters. if entering 5 characters have buffer overflow , undefined behaviour. change @ least:
char input[6];
furthermore line:
validationresult = scanf("%s", &input);
should be:
validationresult = scanf("%s", input);
since input
pointer.
or better yet:
validationresult = scanf("%5s", input);
which prevent buffer overflow, if have invalid input.
Comments
Post a Comment