getchar()
函数从屏幕上读取一个字符并返回其ASCII值。此函数一次仅读取单个字符。
putchar()
函数将传递的字符放在屏幕上,并返回该字符的ASCII值。此功能一次只放置一个字符。
现在考虑Code 1
下面
#include<stdio.h>
void main()
{
int c=getchar();
putchar(c);
}
输出:
A B C D
一个
现在考虑Code 2
:
#include<stdio.h>
void main()
{
int c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
}
输出:
一个
一个
A B C D
A B C D
^ Z
Code 1
可以正常工作,因为,如果我们键入多个字符,则getchar()
函数将仅读取第一个字符并返回其ASCII
值。但是在Code 2
with循环的情况下,为什么要打印整个字符串而不是1个字符?
在代码2中,当您输入字符串时,说出"abcd"
并按Enter键,输入的数据将进入标准输入stream(stdin
)1。getchar()
从中读取一个字符stdin
,然后程序的执行到达while
循环。
在循环中,putchar
输出存储在c
中的字符,即您输入的第一个字符a
。下一个对的调用getchar
不再等待进一步的输入,因为它看到了stdin
2中的字符。这getchar
将读取下一个字符,b
由于不是EOF
,因此循环继续。
这个过程一直持续到getchar
读取一个EOF
字符(使用来输入CTRL+Z
),最后程序结束。
1:所有数据都包括您按的Enter键。
2:这也意味着getchar
当字符stdin
为空时等待您输入字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句