重读《C primer plus》(八)
文章目录
- 一、单字符I/O:getchar()和putchar()
- 二、缓冲区
- 1、优点
- 2、缺点
- 三、结束键盘输入
- 1.文件、流和键盘输入
- 2.文件结尾
- 四、重定向文件
- 五、创建更友好的用户界面
- 六、输入验证
- 1.分析程序
- 2.输入流和数字
- 七、小结
一、单字符I/O:getchar()和putchar()
注意getchar()和putchar()都不是真正的函数,它们被定义为预处理器使用的宏。
二、缓冲区
1、优点
- 把若干字符作为一个块进行传输比逐个发送这些字符节约时间。
- 如果用户打错字符,可以通过键盘修改错误。当最后按下Enter键时,传输的是正确的输入。
2、缺点
- 某些交互式程序也需要无缓冲输入。
三、结束键盘输入
1.文件、流和键盘输入
- C语言中有很多可以打开、读取、写入和关闭文件的库函数
- 流是一个实际输入或输出的理想化数据流,这意味着不同属性和不同种类的输入,由属性更统一的流来表示。于是,打开文件的过程就是把流和文件相关联,而且读写都是通过流来完成
2.文件结尾
#define EOF -1
在程序中可以使用这样的表达式,while((ch = getchar()) != EOF),来判断程序是否到达文件结尾
四、重定向文件
简单来说就是将键盘输入变成了文件输入,将屏幕输出变成了文件输出。具体实现可参考此博主博文:重定向文件的具体实现
五、创建更友好的用户界面
- 使用缓冲输入
- 混合字符和数值输入
六、输入验证
1.分析程序
使用模块(独立函数)化进行编程
2.输入流和数字
七、小结
==编写程序时,要认真设计用户界面。事先预料一些用户可能会犯的错误,然后设计程序妥善处理这些错误情况。
重读《C primer plus》(八)相关推荐
- ROS探索总结(十六)(十七)(十八)(十九)——HRMRP机器人的设计 构建完整的机器人应用系统 重读tf 如何配置机器人的导航功能
ROS探索总结(十六)--HRMRP机器人的设计 1. HRMRP简介 HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台 ...
- 记录——《C Primer Plus (第五版)》第九章编程练习第八题
第八题:用递归函数重做第七题. # include <stdio.h>double recur(double num, int cnt);int main(void) {double nu ...
- 重读《C primer plus》(十一)
文章目录 一.表示字符串和字符串I/O 1.在程序中定义字符串 1.字符串字面量(字符串常量) 2.字符串数组和初始化 3.数组和指针 二.字符串输入 三.字符串输出 四.自定义输出/输入函数 五.字 ...
- 重读《C primer plus》(十)
文章目录 一.数组 1.初始化数组 2.指定初始化容器 3.给数组元素赋值 4.数组边界 5.指定数组的大小 二.多维数组 1.程序示例 2.多维数组 三.指针和数组 四.函数.数组和指针 五.指针操 ...
- 记录——《C Primer Plus (第五版)》第十章编程练习第八题
8.编写一个程序,初始化一个3x5的二维double数组,并利用一个基于变长数组的函数把该数组复制到另一个二维数组.还要编写.个基于变长数组的函数来显示两个数组的内容.这两个函数应该能够处理任意的Nx ...
- 记录——《C Primer Plus (第五版)》第八章编程练习第八题
编写一个程序,显示一个菜单,为您提供加法.减法.乘法或除法的选项.获得您的选择后,该程序请求两个数,然后执行您选择的操作.该程序应该只接受它所提供的菜单选项.它应该使用float类型的数.并且如果用户 ...
- 记录——《C Primer Plus (第五版)》第七章编程练习第八题
修改练习7中的假设a,使程序提供一个选择工资等级的菜单.用switch选择工资等级.程序运行的开头应该像这样:********************************************* ...
- C++ Primer Plus学习(八)——函数进阶
函数进阶 内联函数 引用变量 默认参数 函数重载 函数模板 总结 C++还提供了许多新的函数特性,使之有别于C语言.新特性包括内联函数.按引用传递变量.默认的参数值.函数重载(多态)以及模板函数. 内 ...
- 重读《C primer plus》(九)
文章目录 一.程序示例 示例一 示例二 实际参数和形式参数 黑盒视角 使用return从函数中返回值 函数类型 二.ANSI C函数原型 三.递归 示例三 尾递归 递归和倒序计算 四.编译多源代码文件 ...
最新文章
- OpenCV F变换理论F-transform theory
- 设计模式:备忘录模式(Memento)
- php ci框架 自动验证,CodeIgniter表单验证方法实例详解
- 200行代码,7个对象——让你了解ASP.NET Core框架的本质[3.x版]
- ecshop php5.5分类文字不显示,在PHP5.5下ecshop修正文件报错归类
- 分小组 java_蓝桥杯-分小组-java
- 欠薪投诉竟然要3个月才有结果,这办事效率……
- 使用NetKeeper导致电脑右下角任务栏网络图标消失不见的解决方法
- 服务器16g内存设置多少虚拟,电脑需要设置虚拟内存么(16g虚拟内存设置多少合适)...
- sql server case when then else end as 用法
- Android:从assets资源目录下安装apk
- 3.Anaconda安装python环境
- cURL – PUT请求示例
- 51单片机之外部中断方式 ——— INT0 中断
- 无人机的自主与智能控制
- 某电子计算机有400个终端,(概率四习题.doc
- 刚安装好的CAD一定要做这几个优化设置
- hp laserjet 1020驱动 for windows
- c语言printf输出图形(四星,love)
- STM32CubeMX | 29-使用硬件I2C读取甲醛传感器SGP30
热门文章
- 综合项目:人工智能领域目前职位及薪资现状分析 - 基于主流招聘网站信息
- Python学习之群发邮件
- 关于短时傅立叶变换的基线的选取以及可靠频率点的关系
- android 多屏幕 设计翻译,android设计4(翻译).pdf
- DownloadManager--Android自带的下载工具
- 无限循环当然数c语言,c++ - C / C ++中的无限循环[关闭] - 堆栈内存溢出
- O2OA(翱途)到底能为我们做什么?
- phpstudy能远程连接数据库吗_phpstudy下mysql数据库怎么设置允许通过IP远程连接???...
- 聊聊激光雷达原理之dTOF —— SPAD/SiPM篇
- 【经典】springboot 配置文件统一管理