나는 을 본 적이 없으며 전에 문을 본 적이 없습니다.C에서 while 루프의 쉼표로 구분 된 표현
while(printf("> "), fgets(str, 100, stdin), !feof(stdin)) {
..
..
}
나는 온라인에서 읽을 때, while 루프에서 나오는 조건이 가장 오른쪽 [! feof (stdin)]이라는 것을 읽었습니다.
또한while(!feof(stdin))
{
printf("> ");
fgets(str, 100, stdin);
...
...
}
에 반대 문은 식을 취 동안 다음, 위의 동안 문의 사용은 1,1,1 C에서 유효한 식 그래서, 무엇인가?
실제로 기록와 루프 라인을 처리하지 않고 종료한다은'EOF받지 않고 개행를 수신 종료 fgets'. 이렇게하면 루프가 줄 바꿈에서 끝나지 않는 최종 줄을 무시하게됩니다. 줄 바꿈은 원하는 동작이지만 버그 일 가능성이 있습니다. –
@R : http://www.drpaulcarter.com/cs/common-c-errors.php#4.2에서 관찰 한 내용을 상기시켜줍니다. "저자는 아직 어떤 학생도 feof() 함수를 사용하는 것을 보지 못했습니다. 바르게!" –