阅界资讯

标准输入输出与 MicroLIB:C 语言的终端去了哪里

阅阅界编辑部1阅读5分钟

推荐《标准输入输出与 MicroLIB:C 语言的终端去了哪里》:作者把经验掰开揉碎讲得很细。下面按要点重新组织一遍,方便你快速抓住重点、用起来。

我以前在电脑上写 C,调用 printf() 以后,总能在黑色的终端窗口里看到文字。那时我几乎不会想到一个问题:文字究竟被送到了哪里? 换到单片机后,这个问题突然变得明显。代码可以成功编译,也可以成功下载,可是 printf("hello\n"); 没有任何地方显示 hello 。如果再试着用 scanf() 读一个数字,程序甚至像是停住了。 这个时候, printf() 和 scanf() 还在,电脑上那个现成的“终端”却没有跟过来。要理解这件事,得先把“函数”和“通道”分开。 电脑上的终端不是 C 语言自带的 在电脑上运行程序时,操作系统会为进程准备输入、输出和错误输出。键盘输入被接到标准输入,普通文字被接到标准输出,错误提示通常被接到标准错误。

我以前在电脑上写 C,调用 printf() 以后,总能在黑色的终端窗口里看到文字。那时我几乎不会想到一个问题:文字究竟被送到了哪里? 换到单片机后,这个问题突然变得明显。代码可以成功编译,也可以成功下载,可是 printf("hello\n"); 没有任何地方显示 hello 。如果再试着用 scanf() 读一个数字,程序甚至像是停住了。 这个时候, printf() 和 scanf() 还在,电脑上那个现成的“终端”却没有跟过来。要理解这件事,得先把“函数”和“通道”分开。 电脑上的终端不是 C 语言自带的 在电脑上运行程序时,操作系统会为进程准备输入、输出和错误输出。键盘输入被接到标准输入,普通文字被接到标准输出,错误提示通常被接到标准错误。终端窗口只是操作系统安排好的一个去处。

我以前在电脑上写 C,调用 printf() 以后,总能在黑色的终端窗口里看到文字。那时我几乎不会想到一个问题:文字究竟被送到了哪里? 换到单片机后,这个问题突然变得明显。代码可以成功编译,也可以成功下载,可是 printf("hello\n"); 没有任何地方显示 hello 。如果再试着用 scanf() 读一个数字,程序甚至像是停住了。 这个时候, printf() 和 scanf() 还在,电脑上那个现成的“终端”却没有跟过来。要理解这件事,得先把“函数”和“通道”分开。 电脑上的终端不是 C 语言自带的 在电脑上运行程序时,操作系统会为进程准备输入、输出和错误输出。键盘输入被接到标准输入,普通文字被接到标准输出,错误提示通常被接到标准错误。终端窗口只是操作系统安排好的一个去处。 所以这段代码真正表达的意思不是“把文字画到屏幕上”: [代码示例略] 这更像是格式化一段文字,然后把这段文字交给标准输出通道。

我以前在电脑上写 C,调用 printf() 以后,总能在黑色的终端窗口里看到文字。那时我几乎不会想到一个问题:文字究竟被送到了哪里? 换到单片机后,这个问题突然变得明显。代码可以成功编译,也可以成功下载,可是 printf("hello\n"); 没有任何地方显示 hello 。如果再试着用 scanf() 读一个数字,程序甚至像是停住了。 这个时候, printf() 和 scanf() 还在,电脑上那个现成的“终端”却没有跟过来。要理解这件事,得先把“函数”和“通道”分开。 电脑上的终端不是 C 语言自带的 在电脑上运行程序时,操作系统会为进程准备输入、输出和错误输出。键盘输入被接到标准输入,普通文字被接到标准输出,错误提示通常被接到标准错误。终端窗口只是操作系统安排好的一个去处。 所以这段代码真正表达的意思不是“把文字画到屏幕上”: [代码示例略] 这更像是格式化一段文字,然后把这段文字交给标准输出通道。至于通道另一端是终端窗口、文件,还是别的程序,由运行环境决定。

我以前在电脑上写 C,调用 printf() 以后,总能在黑色的终端窗口里看到文字。那时我几乎不会想到一个问题:文字究竟被送到了哪里? 换到单片机后,这个问题突然变得明显。代码可以成功编译,也可以成功下载,可是 printf("hello\n"); 没有任何地方显示 hello 。如果再试着用 scanf() 读一个数字,程序甚至像是停住了。 这个时候, printf() 和 scanf() 还在,电脑上那个现成的“终端”却没有跟过来。要理解这件事,得先把“函数”和“通道”分开。 电脑上的终端不是 C 语言自带的 在电脑上运行程序时,操作系统会为进程准备输入、输出和错误输出。键盘输入被接到标准输入,普通文字被接到标准输出,错误提示通常被接到标准错误。终端窗口只是操作系统安排好的一个去处。 所以这段代码真正表达的意思不是“把文字画到屏幕上”: [代码示例略] 这更像是格式化一段文字,然后把这段文字交给标准输出通道。至于通道另一端是终端窗口、文件,还是别的程序,由运行环境决定。 scanf() 也是同样的道理:它没有直接从键盘读取变量,而是尝试从标准输入通道获得字符,再把字符解释成数字或文字。

建议先收藏再实操:挑其中一个点今天就试试,跑通了再看下一个。知识只有过手才是你的,你准备先试哪一点? 来源|博客园《标准输入输出与 MicroLIB:C 语言的终端去了哪里》,https://www.cnblogs.com/zw-awa/p/22971849.html

工具方法工具实践

评论(0)

暂无评论,来抢第一条。