C++:getchar()函数的⽤法
c语言char的用法⼀、简介
当程序调⽤getchar时,程序就等着⽤户按键。⽤户输⼊的字符被存放在键盘缓冲区输⼊流中。直到⽤户按回车为⽌。当⽤户键⼊回车之后,getchar才开始从输⼊流中每次读⼊⼀个字符
注意!
①使⽤getchar()时,⽤户在键盘输⼊⼀⾏的数字,当遇到回车符时,这⼀⾏会被存进输⼊流。
②如果没有⽤循环的话,getchar()每次只能从输⼊流中读取⼀个字符
③getchar()只能读取输⼊流回车符前⾯的字符,不可以读取回车符!
④如⽤户在按回车之前输⼊了不⽌⼀个字符,其他字符会保留在键盘缓存区中,等待后续getchar调⽤读取。也就是说,后续的getchar调⽤不会等待⽤户按键,⽽直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待⽤户按键。
⼆、例⼦
int main(){
int ans=0,flag=1;
char ch=getchar();
cout<<ch;
while((ch>'9'|| ch<'0')&& ch!='-') ch=getchar();
if(ch=='-') flag=-1,ch=getchar();
while(ch>='0'&& ch<='9')
{
ans=ans*10+ch-'0',ch=getchar();
cout<<ch;
}
}
在上述程序中,若输⼊
33
那么输出为
3(注意这⾥有个空格)
解读如下:
第⼀次ch=getchar()时 将“3 (空格) 3 (回车)",读⼊了输⼊流中,并且提取出了第⼀个字符3,返回给ch输出,同时在输⼊流缓冲区中删去了3,因此输⼊流缓冲区 变为"(空格) 3 (回车)"
然后进⼊第⼆个while循环,继续第⼆个getchar(),这时是直接从输⼊流读取出了空格返回,赋值给ch,输出空格,然后判断不符合while所以跳出了循环
因此输出为 3 (空格)
如果此时在while函数后⾯继续⽤⼀个getchar()的话,就直接读取了缓冲区的“3”了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论