gpt4 book ai didi

c - 了解 C 语言中的 getchar() 和 putchar()

转载 作者:行者123 更新时间:2023-11-30 21:02:42 24 4
gpt4 key购买 nike

getchar() 函数从屏幕读取字符并返回其 ASCII 值。该函数一次只能读取一个字符。

putchar() 函数将传递的字符放在屏幕上并返回该字符的 ASCII 值。此函数一次仅输入一个字符。

现在考虑下面的代码 1

#include<stdio.h>
void main()
{
int c=getchar();
putchar(c);
}

输出:

abcd

a

现在考虑代码2:

#include<stdio.h>
void main()
{
int c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
}

输出:

a

a

abcd

abcd

^Z

Code 1 工作正常,如果我们输入超过 1 个字符,则 getchar() 函数将仅读取第一个字符并返回其 ASCII 值。但是在带有循环的 Code 2 的情况下,为什么打印整个字符串而不是 1 个字符?

最佳答案

在代码 2 中,当您输入字符串时,例如“abcd”并按 Enter 键,输入的数据将进入标准输入流(stdin) 1getchar()stdin 读取一个字符,然后程序执行到 while 循环。

在循环中,putchar 输出存储在c 中的字符,即您输入的第一个字符,即a。下一次调用 getchar 不会等待进一步的输入,因为它在 stdin2 中看到了字符。此 getchar 读取下一个字符 b,并且由于它不是 EOF,因此循环继续。

此过程一直持续到 getchar 读取 EOF 字符(您使用 CTRL+Z 输入),最后程序结束。

1:所有数据包括您按下的回车键。
2:这也意味着当stdin为空时,getchar等待您输入字符。

关于c - 了解 C 语言中的 getchar() 和 putchar(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28779640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com