文章目录

  • 一、单字符I/O:getchar()和putchar()
  • 二、缓冲区
    • 1、优点
    • 2、缺点
  • 三、结束键盘输入
    • 1.文件、流和键盘输入
    • 2.文件结尾
  • 四、重定向文件
  • 五、创建更友好的用户界面
  • 六、输入验证
    • 1.分析程序
    • 2.输入流和数字
  • 七、小结

一、单字符I/O:getchar()和putchar()

注意getchar()和putchar()都不是真正的函数,它们被定义为预处理器使用的宏。

二、缓冲区

1、优点

  1. 把若干字符作为一个块进行传输比逐个发送这些字符节约时间。
  2. 如果用户打错字符,可以通过键盘修改错误。当最后按下Enter键时,传输的是正确的输入。

2、缺点

  1. 某些交互式程序也需要无缓冲输入。

三、结束键盘输入

1.文件、流和键盘输入

  • C语言中有很多可以打开、读取、写入和关闭文件的库函数
  • 是一个实际输入或输出的理想化数据流,这意味着不同属性和不同种类的输入,由属性更统一的流来表示。于是,打开文件的过程就是把流和文件相关联,而且读写都是通过流来完成

2.文件结尾

#define EOF -1
在程序中可以使用这样的表达式,while((ch = getchar()) != EOF),来判断程序是否到达文件结尾

四、重定向文件

简单来说就是将键盘输入变成了文件输入,将屏幕输出变成了文件输出。具体实现可参考此博主博文:重定向文件的具体实现

五、创建更友好的用户界面

  1. 使用缓冲输入
  2. 混合字符和数值输入

六、输入验证

1.分析程序

使用模块(独立函数)化进行编程

2.输入流和数字

七、小结

==编写程序时,要认真设计用户界面。事先预料一些用户可能会犯的错误,然后设计程序妥善处理这些错误情况。

重读《C primer plus》(八)相关推荐

  1. ROS探索总结(十六)(十七)(十八)(十九)——HRMRP机器人的设计 构建完整的机器人应用系统 重读tf 如何配置机器人的导航功能

    ROS探索总结(十六)--HRMRP机器人的设计 1. HRMRP简介         HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台 ...

  2. 记录——《C Primer Plus (第五版)》第九章编程练习第八题

    第八题:用递归函数重做第七题. # include <stdio.h>double recur(double num, int cnt);int main(void) {double nu ...

  3. 重读《C primer plus》(十一)

    文章目录 一.表示字符串和字符串I/O 1.在程序中定义字符串 1.字符串字面量(字符串常量) 2.字符串数组和初始化 3.数组和指针 二.字符串输入 三.字符串输出 四.自定义输出/输入函数 五.字 ...

  4. 重读《C primer plus》(十)

    文章目录 一.数组 1.初始化数组 2.指定初始化容器 3.给数组元素赋值 4.数组边界 5.指定数组的大小 二.多维数组 1.程序示例 2.多维数组 三.指针和数组 四.函数.数组和指针 五.指针操 ...

  5. 记录——《C Primer Plus (第五版)》第十章编程练习第八题

    8.编写一个程序,初始化一个3x5的二维double数组,并利用一个基于变长数组的函数把该数组复制到另一个二维数组.还要编写.个基于变长数组的函数来显示两个数组的内容.这两个函数应该能够处理任意的Nx ...

  6. 记录——《C Primer Plus (第五版)》第八章编程练习第八题

    编写一个程序,显示一个菜单,为您提供加法.减法.乘法或除法的选项.获得您的选择后,该程序请求两个数,然后执行您选择的操作.该程序应该只接受它所提供的菜单选项.它应该使用float类型的数.并且如果用户 ...

  7. 记录——《C Primer Plus (第五版)》第七章编程练习第八题

    修改练习7中的假设a,使程序提供一个选择工资等级的菜单.用switch选择工资等级.程序运行的开头应该像这样:********************************************* ...

  8. C++ Primer Plus学习(八)——函数进阶

    函数进阶 内联函数 引用变量 默认参数 函数重载 函数模板 总结 C++还提供了许多新的函数特性,使之有别于C语言.新特性包括内联函数.按引用传递变量.默认的参数值.函数重载(多态)以及模板函数. 内 ...

  9. 重读《C primer plus》(九)

    文章目录 一.程序示例 示例一 示例二 实际参数和形式参数 黑盒视角 使用return从函数中返回值 函数类型 二.ANSI C函数原型 三.递归 示例三 尾递归 递归和倒序计算 四.编译多源代码文件 ...

最新文章

  1. OpenCV F变换理论F-transform theory
  2. 设计模式:备忘录模式(Memento)
  3. php ci框架 自动验证,CodeIgniter表单验证方法实例详解
  4. 200行代码,7个对象——让你了解ASP.NET Core框架的本质[3.x版]
  5. ecshop php5.5分类文字不显示,在PHP5.5下ecshop修正文件报错归类
  6. 分小组 java_蓝桥杯-分小组-java
  7. 欠薪投诉竟然要3个月才有结果,这办事效率……
  8. 使用NetKeeper导致电脑右下角任务栏网络图标消失不见的解决方法
  9. 服务器16g内存设置多少虚拟,电脑需要设置虚拟内存么(16g虚拟内存设置多少合适)...
  10. sql server case when then else end as 用法
  11. Android:从assets资源目录下安装apk
  12. 3.Anaconda安装python环境
  13. cURL – PUT请求示例
  14. 51单片机之外部中断方式 ——— INT0 中断
  15. 无人机的自主与智能控制
  16. 某电子计算机有400个终端,(概率四习题.doc
  17. 刚安装好的CAD一定要做这几个优化设置
  18. hp laserjet 1020驱动 for windows
  19. c语言printf输出图形(四星,love)
  20. STM32CubeMX | 29-使用硬件I2C读取甲醛传感器SGP30

热门文章

  1. 综合项目:人工智能领域目前职位及薪资现状分析 - 基于主流招聘网站信息
  2. Python学习之群发邮件
  3. 关于短时傅立叶变换的基线的选取以及可靠频率点的关系
  4. android 多屏幕 设计翻译,android设计4(翻译).pdf
  5. DownloadManager--Android自带的下载工具
  6. 无限循环当然数c语言,c++ - C / C ++中的无限循环[关闭] - 堆栈内存溢出
  7. O2OA(翱途)到底能为我们做什么?
  8. phpstudy能远程连接数据库吗_phpstudy下mysql数据库怎么设置允许通过IP远程连接???...
  9. 聊聊激光雷达原理之dTOF —— SPAD/SiPM篇
  10. 【经典】springboot 配置文件统一管理