책의 예를 따라 가면서
#include <stdio.h>
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c)
c = getchar();
}
}
먼저 문자를 읽은 다음 인쇄하여 putchar와 getchar를 전환하는 것이 더 합리적이라고 생각했습니다.
c = getchar();
putchar(c);
이제 실행하면 putchar의 첫 번째 출력에 c의 첫 번째 문자가 누락되어 어떻게됩니까? 다음은 출력입니다.
kingvon@KingVon:~/Desktop/C$ ./a.out
first letter is missing?
irst letter is missing?
but now it is not
but now it is not
이것은 흥미 롭습니다. 왜 이런 일이 발생합니까?
루프 전에 캐릭터 를 얻고 있기 때문 입니다. 즉, c는 첫 번째 문자와 동일하지만 루프에서는 그 이후의 모든 문자를 얻습니다. 그래서,
Get: f
Start the loop
Get: i
Print: i
And so on
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다