gpt4 book ai didi

c - putchar 如何与 while 循环一起使用?

转载 作者:行者123 更新时间:2023-11-30 15:24:46 25 4
gpt4 key购买 nike

我是c编程新手,所以希望你们能帮助我解决这些问题。

1.我以为 putchar() 每次只打印 1 个字符,而当我输入几个字符(如“hello”)时,它会在允许我输入下一个输入之前打印“hello”?我认为它应该只打印“h”,然后允许我输入其他输入,因为 getchar() 每次只返回一个字符。

2.如何让循环停止?我知道 EOF 的值为 -1,但是当我输入 -1 时,循环仍然运行。

#include <stdio.h>

main()
{

int c = getchar();

while(c != EOF){
putchar(c);
c = getchar();
}

}

最佳答案

第一个 getchar() 完成读取一个字符后,下一个 getchar(); 位于 while() 循环内,因此按照逻辑,它将继续一一读取输入,直到遇到 EOF

遵循相同的逻辑,putchar(c);位于while循环下,因此它将打印读取的所有字符[每个循环一个字符] code>getchar() 并存储在 c 中。

在 Linux 中,EOF 是通过按 CTRL+D 生成的。当等待输入时,如果按下此组合键,终端驱动程序会将其转换为 EOF 并且 while 循环将中断。

我对 Windows 不太确定,但组合键应该是 CTRL+Z

注意:即使输入 -1 看起来应该按照 EOF 工作,但实际上不会。 getchar() 无法一次读取全部 -1。在两次连续迭代中,它将被读取为 -1。另外值得一提的是,字符 1 不等于整数 1。一个字符1一旦被读取,就会被相应地编码[主要是ASCII]并存储相应的值。

关于c - putchar 如何与 while 循环一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28256187/

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