I have a problem which, after many tests, I think because of this I donβt understand how the input buffer works.
I have a while loop that should continue to iterate until the user types βnoβ to stop the iteration.
I have two problems.
- It never stops at the iteration, regardless of the fact that the user enters "no" or something else is not "yes"
- As you can see, the output in the second loop has a problem. The program does not ask the user for a line input and skips this step, for example, the user simply enters ENTER.
CODE:
int foo = 0; do{ int i, cycles; char array[MAX_LENGTH+1]; for(cycles=0; cycles < MAX_READ_CYCLES; cycles++){ i=0; printf("\n\nEnter a string: "); char ch; while ((ch = getchar()) != '\n' && ch != EOF) { array[i] = ch; i++; } array[i] = '\0';
OUTPUT
Enter a string: test String you entered: test Do you want to continue? 1: yes / 0: no 0 Enter a string: String you entered: Do you want to continue? 1: yes / 0: no 3 Enter a string: String you entered: Do you want to continue?
source share