| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 查缺补漏C语言:输入输出 -> 正文阅读 |
|
[C++知识库]查缺补漏C语言:输入输出 |
输入:scanf()scanf()不同方式输入:
输出: 只要符合代码的格式要求就能正确输出计算值。 ? 缓冲区:从本质上讲,我们从键盘输入的数据并没有直接交给 scanf(),而是放入了缓冲区中,直到我们按下回车键,scanf() 才到缓冲区中读取数据。如果缓冲区中的数据符合 scanf() 的要求,那么就读取结束;如果不符合要求,那么就继续等待用户输入,或者干脆读取失败。如果缓冲区中的数据不符合 scanf() 的要求,要么继续等待用户输入,要么就干脆读取失败。 第一次,正确输入:
第一次正确输出: 第二次,尝试错误输入: 当我们把最后一个值输入成a时,这并不符合变量d的正确格式,但是最后的输出结果d仍等于4,这说明最后的结果是从上一次scanf输入的缓冲区读取到的。 ?第三次尝试错误输入: ?当我们把第三个值输入为错误格式后,程序直接终止执行,输出缓冲区的正确值。 这说明 scanf() 不会跳过不符合要求的数据,遇到不符合要求的数据会读取失败,而不是再继续等待用户输入。 总而言之,正是由于缓冲区的存在,才使得我们能够多输入一些数据,或者一次性输入所有数据,这可以认为是缓冲区的一点优势。然而,缓冲区也带来了一定的负面影响,甚至会导致很奇怪的行为,请看下面的代码:
错误输入1: 输入两个值中间用空格隔开: 错误输入2: 输入一个值按回车:? 正确输入: 按代码格式输入:a=1b=3? ? ? 错误输入3: 不按代码格式输入:? 中间加了一个空格就g了。? 这个问题会在复习缓冲区时着重学习,下面介绍除了整数外还能输入的其他的字符格式: scanf() 格式控制符汇总
getchar()对于单个字符的输入,相当于简化版的scanf("%c",&c)
输出: ? getche()getche() 就比较有意思了,它没有缓冲区,输入一个字符后会立即读取,不用等待用户按下回车键,这是它和 scanf()、getchar() 的最大区别。请看下面的代码:
输出: 在我们刚输入一个字符a后紧接着后面就输出了字符a,不需要按回车,也就是不需要将字符a存入缓冲区再读取,非常的迅速。 但需要注意,getche() 位于 conio.h 头文件中,而这个头文件是 Windows 特有的,Linux 和 Mac OS 下没有包含该头文件。换句话说,getche() 并不是标准函数,默认只能在 Windows 下使用,不能在 Linux 和 Mac OS 下使用。? getch()getch() 也没有缓冲区,输入一个字符后会立即读取,不用按下回车键,这一点和 getche() 相同。getch() 的特别之处是它没有回显,看不到输入的字符。所谓回显,就是在控制台上显示出用户输入的字符;没有回显,就不会显示用户输入的字符,就好像根本没有输入一样。
?输出: ? 注意,和 getche() 一样,getch() 也位于 conio.h 头文件中,也不是标准函数,默认只能在 Windows 下使用,不能在 Linux 和 Mac OS 下使用。 对三个函数的总结
gets():输入字符串当然可以使用 scanf() 这个通用的输入函数,对应的格式控制符为
输出: ? ? gets() 是有缓冲区的,每次按下回车键,就代表当前输入结束了,gets() 开始从缓冲区中读取内容,这一点和 scanf() 是一样的。gets() 和 scanf() 的主要区别是:
参考文章: C语言scanf:读取从键盘输入的数据(含输入格式汇总表) (biancheng.net) C语言输入字符和字符串(所有函数大汇总) (biancheng.net)? 输出:在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是:
汇总一下格式控制符:
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 8:37:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |