当前课程知识点:高级语言程序设计 >  顺序结构程序设计 >  2.3 格式输出和格式输入 >  单个字符的输入输出

返回《高级语言程序设计》慕课在线视频课程列表

单个字符的输入输出在线视频

单个字符的输入输出

下一节:运算符和表达式

返回《高级语言程序设计》慕课在线视频列表

单个字符的输入输出课程教案、知识点、字幕

大家好

本讲介绍C语言的两个函数

putchar函数和getchar函数

putchar函数是向屏幕输出一个字符

这个圆括号里面的ch可以是以下数据类型

可以是字符型数据

可以是整型数据

可以是转义字符

我们来看一个例子

下面我们来看一下这段代码

这里定义了一个字符型变量a

并且初始化为大写字母O

定义一个整型变量b初始化为75

现在我们来看看三次调用了putchar这个函数

可以看到

根据这个运行结果来分析一下

putchar a输出的是大写字母O

putchar \n

这个后面接的\n是个转义字符换行了

Putchar b

它是把这个整型变量的值按字符格式输出

所以输出的是大写的K这个字符

再来看看该得下函数getchar

函数是从标准输入流读取一个字符

它没有参数

函数值就是从输入设备接收的字符

它每次只读取一个字符

这个字符可以赋给字符变量

可以赋给整型变量

可以作为表达式的一部分

我们来看看实例

在这个函数中定义了一个字符型变量c

好用getchar这个函数

来从键盘接收一个字符

赋给c输出

第一次运行的时候

我们就只输入了一个小写的字母a

那么putchar把这个a输出出来了

第二次我们输入三个字符

它还是只接收一个字符

第一个字符

输出小写的a

那么我们想把这个小写a的ASCII码值输进去

赋给这个变量字符变量c

它能得到小写的a吗

不行

它是将9这个作为字符收入进去了

赋给了c

然后输出的是9这个字符

在输入数据的时候

我们特别要注意

有时候有数字型的数据

有时候有字符型数据

那么混合输入这些数据的时候

要注意一些什么问题呢

我们来看一个实例

我们输入一个整数和输入一个字符

再将输入的整数和字符输出

我们来看一下这段代码

定义了一个整型变量x

一个字符型变量ch

现在我们先从键盘输入这个整型变量的值

然后我们再从键盘输入一个字符给这个ch

那么我们希望这个ch的值是大写的A

我们来运行一下这个程序

先输入100

回车

还没等我们输入大写的A

这个程序已经就结束了

我们可以看到这个程序里面

根据这个程序

没等我们输入ch的值

它已经执行了printf的语句

X=100

而ch呢

可以看到它的后面的光标移到了下一行

也就是说ch的值是回车字符

它将光标移到了下一行输出

这个结果不是我们想要的结果

那么这个原因是什么呢

是因为我们在输入x的时候

在输入100以后

以回车结束了这个整数的输入

而这个回车呢

在输入缓冲区域

被这个当做有效字符赋给了ch

那么我们怎么解决这个问题呢

我们可以在输入了整型变量x的值以后

增加一条这个getchar函数

那么这个getchar可以读取

这个输入x之后的回车字符

但是我们不把它赋给任何变量

就只把这个回车字符读出来

然后我们来运行一下

好 我们从键盘输入100

回车

这个时候这个下一条input语句

这个print提示语句出来了

然后我们输入大写的A

在回车

所以我们在这个程序的结尾得加两个回车

这是跟这个运行环境有关的

然后让它暂停

再继续执行

输入100

回车

这个时候我们给ch赋值大写的A回车

可以看到

这个一个整数100赋给了X

大写的A也赋给了ch这个字符变量

所以在我们这个既输入整型数据

又来输入字符数据的时候

要注意这些这个输入缓冲区的残留字符的问题

可以用getchar清除用户输入整数时的回车键

看这个程序

在输入字符数据之前

增加一条getchar语句

那么我们再来看运行结果

在输入一个整数以后

计算机停下来

等待我们输入一个大写字母

输入一个大写字母以后

输出x值等于3

ch的值等于大A

C语言的格式输入输出比较麻烦

用的不对就得不到预期的结果

而输入输出又是最基本的操作

几乎每个程序都包含输入输出

因此大家要多上机练习

今天的内容就讲到这里

谢谢大家

高级语言程序设计课程列表:

程序设计和C语言

-1.1 计算机程序和计算机语言

--计算机程序和计算机语言

--致敬先辈:伟大的C语言之父——丹尼斯·里奇 程序员

-1.2 C程序的构成

--C程序的构成

--当前主流程序设计语言各自都有什么优势?

-1.3 C语言编辑、编译、运行(VC++2010学习版)

--C语言编辑、编译、运行(VC++2010学习版)

-练习题

顺序结构程序设计

-2.1 变量的定义和使用

--变量的定义和使用

-2.2 数据类型

--数据类型简介

--整型数据

--实型数据

-2.3 格式输出和格式输入

--格式输出printf函数

--格式输入scanf函数

--单个字符的输入输出

-2.4 运算符和表达式

--运算符和表达式

-2.5 结构化程序设计入门

--结构化程序设计入门

-练习题

选择结构程序设计

-3.1 为什么要用选择结构解决问题

--为什么要用选择结构解决问题

-3.2 如何正确表示选择结构中的条件

--如何正确表示选择结构中的条件

-3.3 用if语句及if语句嵌套实现选择结构

--用if语句及if语句嵌套实现选择结构

-3.4 用switch语句实现选择结构

--用switch语句实现选择结构

-练习

循环结构程序设计

-4.1 循环的引入

-- 为什么要用循环结构解决问题

-4.1 循环的引入--作业

-4.2 用while语句实现循环

--用while语句实现循环

-4.3 用do-while语句实现循环

-- 用do-while语句实现循环

-4.4 用for语句实现循环

-- 用for语句实现循环

-4.4 用for语句实现循环--作业

-4.5 何时需要用循环的嵌套

--何时需要用循环的嵌套

-4.6 如何提前终止循环和提前结束本次循环

--如何提前终止循环和提前结束本次循环

-习题--作业

数组

-5.1 数组类型的引入

--数组类型的引入

-5.2 一维数组的定义和初始化

--一维数组的定义和初始化

-5.3 一维数组的使用

--一维数组的使用

-5.4 二维数组的定义和初始化

--二维数组的定义和初始化

-5.5 二维数组的使用

--二维数组的使用

-习题--作业

指针

-6.1 什么是指针

--什么是指针

-6.2 指针类型及相关概念

--指针类型及相关概念

-6.3 指针变量的定义、赋值与使用

--指针变量的定义、赋值与使用

-6.4 指针的运算

--指针的运算

-6.5 指针与一维数组

--指针与一维数组

-6.6 指针的指针

--指针的指针

-6.7 指针与二维数组

--指针与二维数组

-习题--作业

函数

-7.1 为什么要自定义函数

--为什么要自定义函数

-7.2 函数的定义

--函数的定义

-7.3 函数的调用

--函数的调用

-7.4 函数参数的传递

--函数参数的传递

-7.5 函数的嵌套调用和递归调用

--函数的嵌套调用和递归调用

-7.6 变量的作用域和存储类型

--变量的作用域和存储类型

-习题--作业

字符串

-8.1 字符串的存储及输入输出

--字符串的存储及输入输出

-8.2 系统字符串处理函数

--系统字符串处理函数

-8.3 自定义字符串处理函数

--自定义字符串处理函数

-习题--作业

结构体和共用体

-9.1 结构体类型的定义

--结构体类型的定义

-9.2 结构体变量及指针变量的定义及使用

--结构体类型变量和指针变量的定义和使用

-9.3 结构体变量和指针变量作函数的参数

--用结构体变量和指向结构体的指针作函数参数

-9.4 结构体数组的定义和使用

--结构体数组的定义和使用

-9.5 共用体类型和枚举类型

--共用体和枚举类型

-习题--作业

动态内存分配

-动态内存分配--习题

文件

-习题--作业

单个字符的输入输出笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。