2017-11-04 5 views
-1
#include <stdio.h> 
void main() 
{ 
char c = getchar(); 
while (c != '.') 
{ 
putchar(c); 
c = getchar(); 
} 
} 

위 코드를 실행하고 "Shubham jain"과 같은 문자열을 입력 할 때. getchar()은 문자열에서 첫 번째 문자 만 읽어야하는 반면 전체 문자열은 복사되고 인쇄됩니다. 누군가 어떻게 이런 일이 일어날 수 있는지 설명 할 수 있습니까?전체 문자열이 getchar으로 읽고 인쇄되는 이유는 무엇입니까?

답변

0

프로그램을 사용하여 문자열을 입력하면 getchar 함수의 문자열에있는 모든 문자에 대해 자동으로 입력을 제공하여 여러 번 호출합니다. 루프가 '.' 프로그램이 더 이상 문자를 읽지 않습니다.

+0

괜찮습니까? –

+0

이것이 맞는 대답이라고 생각한다면 동의하십시오. –

0

그래서 입력 문자열이 버퍼링되며 getchar()이 다음에 호출 될 때 사용자가 새 문자를 입력하고 입력 버퍼에서 다시 가져 오는 것을 기다리지 않습니다.

0

getcharchar이 아니며 실제로는 int입니다. 일반적으로 getchar에 입력 한 내용을 정수로 저장하고이를 char로 변환 할 수 있습니다. 자, 왜 모든 걸 읽었 니? getchar doesn't have a specific size that it reads but that has to do more with the EOF . use 하나의 문자를 읽는 getc`