Jestem początkujący w C, więc proszę wybaczyć, jeśli to pytanie jest głupie lub pytał dziwnie.Dlaczego drukowany jest printf po sprawdzeniu prawdziwego warunku?
Czytam C starter plusa i jeden z przykładów w Rozdział-8 jest jakaś pętla że testuje czy użytkownik wszedł - a newline character or not
, którego nie mogłem zrozumieć.
Kod jest krótkie, więc pokażę ci to:
int main(void)
{
int ch; /* character to be printed */
int rows, cols; /* number of rows and columns */
printf("Enter a character and two integers:\n");
while ((ch = getchar()) != '\n')
{
if (scanf("%d %d",&rows, &cols) != 2)
break;
display(ch, rows, cols);
while (getchar() != '\n')
continue;
printf("Enter another character and two integers;\n");
printf("Enter a newline to quit.\n");
}
printf("Bye.\n");
return 0;
}
void display(char cr, int lines, int width) // the function to preform the printing of the arguments being passed
Co ja nie rozumiem, jest tutaj:
while (getchar() != '\n')
continue;
printf("Enter another character and two integers;\n");
printf("Enter a newline to quit.\n");
Przede wszystkim while (getchar() != '\n')
testuje pierwszy ch było wprowadziłeś w prawo? Po drugie, jeśli to prawda, to dlaczego kontynuacja nie przeskakuje instrukcji printf i idzie do pierwszej chwili? czy to nie to, co powinien zrobić?
Tnx
"Czytam C primer plus" <--- To jest twój największy problem !! Zabij tę książkę ogniem !!! RTFN –
"Kontynuuj" to po prostu dym. Lepiej być 'while while (getchar()! = '\ N');'. –
Dziękuję za wiele :) @Daniel Fischer – MNY