我被K&R表示使用getchar().它提供与输入字符串相同的输出:

#include <stdio.h>

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

为什么要打印整个字符串?我希望它读取一个字符,然后再次请求输入.

我们输入的所有字符串都以EOF终止吗?

推荐答案

在您可能使用的简单设置中,getchar可以与buffered个输入一起工作,因此必须在getchar读取任何内容之前按enter键.字符串不以EOF结尾;事实上,EOF并不是一个真正的字符,而是一个表示文件结束的神奇值.但EOF不是字符串读取的一部分.这是getchar在没有什么可读的时候返回的结果.

C++相关问答推荐

Bison解析器转移/减少冲突

如何通过Zephyr(Devicetree)在PR Pico上设置UTE 1?

为什么静态说明符为内联函数生成外部定义?

C strlen on char array

字符数组,字符指针,在一种情况下工作,但在另一种情况下不工作?

我编译了一个新的c程序,并收到以下错误

为什么在C中二维字符数组会有这样的行为?

Setenv在c编程中的用法?

CGO:如何防止在使用CGO在包中包含C头文件时出现多个定义...&q;错误?

如何在C中使数组变量的值为常量?

如何使用唯一数字对整型进行分区

为什么我的半数组测试和奇数组测试不起作用?(我使用Assert进行调试)

发送和接收的消息中的Unix域套接字不匹配

存储和访问指向 struct 的指针数组

分配给静态变量和动态变量的位置之间有区别吗?

从文件到链表读取日期

我的代码可以与一个编译器一起使用,但不能与其他编译器一起使用

这些表达式是否涉及 C 中定义的复合文字?

传递参数:C 和 C++ 中 array 与 *&array 和 &array[0] 的区别

是什么阻止编译器优化手写的 memcmp()?