سلام دوستان
من یه برنامه دارم وقتی اجراش می کنم اون خطی که باید از یوزر بوسیله تابع getchar یه کاراکتر از ورودی بگیره این کاره رو انجام نمی ده. بعد از دیباگ کردن فهمیدن مقدار \n
رو در متغیر ans می ریزه. کسی از دوستان می تونه کمک کنه که چرا این تابع این مقدار رو برمی گردونه.
#include<stdio.h>
#include<stdlib.h>
int main(void){
int magic, guess;
char ans = 'y';
magic = rand(); // get a random number and put it in 'magic' variable
do{
printf("\nGuess the magic number:");
scanf("%d", &guess);
if(guess == magic){
printf("\n *** right ***");
printf("\n %d is the magic number.", magic);
ans = 'n';
}
else{
printf("\n *** wrong ***");
if(guess > magic)
printf("\n your guess is too high.");
else
printf("\n your guess is too low.");
printf("\n Do you want to continue?(y/n): ");
ans = getchar();
} // end of else
}while(ans == 'y'); // end of while
return 0;
}
اجرای برنامه به این شکله:
amin@linuxbox:~/C$ gcc questions/guess-number.c
amin@linuxbox:~/C$ ./a.out
Guess the magic number:43
*** wrong ***
your guess is too low.
Do you want to continue?(y/n): amin@linuxbox:~/C$