我读了一本1997年的书,教我如何用C编程,当指定像scanf这样的函数从键盘获取输入时,它总是使用"通常"这个词.因此,我很好奇像scanf这样的函数是否可以从其他设备获取输入,或者它是否曾经可以.

推荐答案

因此,我很好奇像scanf这样的函数是否可以从其他设备获取输入,或者它是否曾经可以.

scanf从程序的标准输入中获取输入.这与操作环境和程序启动方式有关.(查看"输入/输出重定向").将程序的标准输入连接到磁盘上的文件或另一个程序的输出并不罕见.它有时连接到插座.更罕见的是,它连接到串行端口、空设备、零或随机字节源.

历史上,它可能连接到卡片或纸带读取器.

原则上,它可以连接到any个产生数据的设备——例如鼠标——但仅仅因为某些事情是可能的并不能使它变得有用.

C++相关问答推荐

数组元素的编号索引

使用单个字节内的位字段

将 typewriter LF打印到Windows终端,而不是隐含的CR+LF

使用NameSurname扫描到两个单独的字符串

如何将长字符串转换为较小的缩写,该缩写由第一个字符、最后一个字符和中间的字符数组成?

为什么该函数不将参数值保存到数据 struct 中?

如何在CANbus RX/TX FIFO起始地址寄存器(ATSAME 51)的特定地址初始化数组?

为什么函数是按照定义的顺序执行的,而不是按照从avr-c中的int main()调用的顺序执行的?

如何在提取的索引中分配空值?

致命错误:ASM/rwan ce.h:没有这样的文件或目录.符号链接还不够

C语言中神秘的(我认为)缓冲区溢出

C语言中的数字指针

将回调/基于事件的C API转换为非回调API

为什么我的旧式&q;函数在传递浮点数时会打印2?

如何在不更改格式说明符的情况下同时支持双精度和长双精度?

共享目标代码似乎不能在Linux上的进程之间共享

Linux/C:带有子进程的进程在添加waitid后都挂起

强制GCC始终加载常量(即只读),即使启用了优化

分支预测和UB(未定义的行为)

DennisM.Ritchie的C编程语言一书中关于二进制搜索的代码出现错误?