当前课程知识点:C语言程序设计 >  第4章 基本输入输出和顺序程序设计 >  4.2 格式化输入scanf及字符数据的非格式化输入输出 >  格式化输入scanf及字符数据的非格式化输入输出

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

格式化输入scanf及字符数据的非格式化输入输出在线视频

下一节:关系运算符和关系表达式

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

格式化输入scanf及字符数据的非格式化输入输出课程教案、知识点、字幕

同学们大家好

上节课我们了解了C语言

输入输出操作是通过调用

C的标准库函数来实现的

并且学习printf函数的用法

这节课我们重点学习数据

的格式化输入scanf函数的用法

scanf函数的作用是按照变量

在内存的地址将变量值存进去

一般格式

格式控制字符串包含格式转换符和分隔符

用于指定各参数的输入格式

地址表列可以由若干个变量的地址

或字符串的首地址组成

参数之间以逗号分隔

scanf函数接受键盘输入的数据

并将输入的数据

依次存放在地址表列中的变量中

每个转换说明符

都对应一个存储数据的地址

如果没有指定存储数据的目标地址

虽然编译器不会提示出错信息

但会导致数据无法正确地读入

指定的内存单元中

我们来看格式控制符与

地址列表中参数的对应关系

第一个转换符对应整型变量a

第二个转换符对应整型变量b

每个输入变量前添加取地址运算符

scanf函数的格式控制符和printf函数中

的格式控制符说明相似

都以%开始

以一个格式转换字符结束

中间可以插入修饰符

下表为scanf函数格式转换符

附加的格式说明字符如下表

要说明的是

输入数据时不能规定精度

不能企图输入1234567

而使a的值为12345.67

下面的程序段运用*修饰符跳过3个2

的结果如下

下面我们来学习调用scanf函数时

应注意的问题

(1)如果相邻两个格式控制符之间

不指定数据分隔符

则相应的两个输入数据之间

至少用一个空格分隔

或者用Tab键分隔

或者输入一个数据后

按回车

然后再输入下一个数据

2

如果在

格式控制

字符串中除了格式说明以外

还有常规字符

包括转义字符

则在输入数据时应输入

与这些字符相同的字符

这种形式为了使用户输入数据时

添加必要的信息以帮助理解

不易发生输入数据的错误

(3) 当格式控制字符串中指定了

输入数据的域宽m时

将读取输入数据中相应的m位

按需要的位数赋给相应的变量

多余部分被舍弃

如系统将读取

abc中的'a'赋给变量ch1

"def"中的'd'赋给变量ch2

4 scanf函数的

格式控制

后面应当是变量地址

而不应是变量名

5使用格式控制符%c输入单个字符时

空格和转义字符均作为有效字符被输入

系统将字母'A'赋值给ch1

空格'□'赋值给ch2

字母'B'赋值给ch3

6

输入数据时

遇到空格

回车键

Tab键等系统认为该数据结束

7

当scanf调用需要输入多个数据项时

如果前面数据的输入遇到非法字符

并且输入的非法字符

不是格式控制字符串中的常规字符

将影响后面数据的输入

导致数据输入失败

最后我们简要的介绍

字符数据的非格式化

输入输出中的getchar

和putchar函数

getchar

从键盘读一字符

以回车符为输入结束条件

输入多个字符时

返回第一个字符的值

在监视器上回显输入的字符

下面的程序是利用getchar输入字符

编译运行后从键盘输入1234

得到如下结果 ch1是字符1

ch2是字符2

变量a的值为数值34

putchar

putchar

在显示器上输出一个字符

这个字符可以是打印字符

也可以是转义字符格式

格式

编程利用putchar

函数输出字符

运行结果如下

分析结果可看出

putchar函数本身不具备回车的功能

本章重点讲解了printf

scanf

函数的使用

简单介绍了字符的非格式化输入输出库函数

结合前面所学的知识

可以实现简单的问题求解

如输入圆的半径

计算并输出圆的周长

面积等

到此我们关于C语言的

输入输出知识就学习到这

同学们 再见

C语言程序设计课程列表:

第1章 C语言程序设计预备知识

-计算思维与计算机

--计算思维与计算机

--计算思维与计算机

--计算思维和计算机

第2章 C语言程序设计基础

-2.1 程序设计语言的发展及其特点和应用

--程序设计语言的发展及其特点和应用

--程序设计语言的特点及发展

- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤

-- C语言程序的基本结构及编制C语言程序的基本步骤

--C语言程序的结构和编制步骤

第3章 基本数据类型、运算符与表达式

-3.1 C语言的数据类型

--C语言的数据类型

--C语言的数据类型

-3.2 常量

--常量

--常量

-3.3 什么是变量

--什么是变量

--什么是变量

-3.4 如何进行算术运算

--如何进行算术运算

--如何进行算术运算

-3.5 赋值运算符和逗号运算符

--赋值运算符和逗号运算符

--赋值运算符和逗号运算符

-3.6 数据类型转换

--数据类型转换

--数据类型转换

第4章 基本输入输出和顺序程序设计

-4.1 格式化输出printf

--格式化输出printf

--格式化输出

-4.2 格式化输入scanf及字符数据的非格式化输入输出

--格式化输入scanf及字符数据的非格式化输入输出

--格式化输入

第5章 选择结构程序设计

-5.1 关系运算符和关系表达式

--关系运算符和关系表达式

--关系运算符和关系表达式

-5.2 逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

-5.3 条件运算符和条件表达式

--条件运算符和条件表达式

--条件运算符和条件表达式

-5.4 if语句

--if语句

--if语句

-5.5 switch语句

--switch语句

--switch语句

第6章 循环结构程序设计

-6.1 while语句

--while语句

--while语句

--do-while语句

-6.2 for语句

--for语句

--for语句

-6.3 循环的嵌套

--循环的嵌套

--循环的嵌套

-6.4 break语句和continue语句

--break语句和continue语句

--break和continue语句

第7章 数组

-7.1 一维数组的定义和引用

--一维数组的定义和引用

--一维数组的定义和引用

-7.2 一维数组的赋值

--一维数组的赋值

--一维数组的赋值

-7.3 二维数组的定义和引用

--二维数组的定义和引用

--二维数组的定义和引用

-7.4 二维数组的赋值

--二维数组的赋值

--二维数组的赋值

-7.5 字符串的本质

--字符串的本质

--字符串的本质

-7.6 字符串操作的常用函数

--字符串操作的常用函数

--字符串常用函数

-7.7 字符串数组

--字符串数组

--字符串数组

第8章 函数

-8.1 函数概述

--函数概述

--函数概述

-8.2 有参函数

--有参函数

--有参函数

-8.3 函数参数的传递方式

--函数参数的传递形式

--函数参数的传递方式

-8.4 变量的作用域和生存期

--变量的作用域和生存期

--变量的作用域和生存期

-8.5 变量的存储类型

--变量的存储类型

--变量的存储类型

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

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

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

-8.7 函数的作用域与封装

--函数的作用域与封装

--函数的作用域与封装

第9章 指针

-9.1 指针变量的概念(上)

--指针变量的概念(上)

--指针变量的概念(上)

-9.2 指针变量的概念(下)

--指针变量的概念(下)

--指针变量的概念(下)

-9.3 指向一维数组的指针变量

--指向一维数组的指针变量

--指向一维数组的指针变量

-9.4 指向二维数组的指针变量(上)

--指向二维数组的指针变量

--指向二维数组的指针变量(上)

-9.5 指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

-9.6 动态内存分配

--动态内存分配

--动态内存分配

第10章 预处理命令

-10.1 编译预处理

--编译预处理

第11章 复杂数据类型

-11.1 用户自己建立数据类型

--用户自己建立数据类型

--用户自己建立数据类型

-11.2 定义结构体类型变量

--定义结构体类型变量

--定义结构体类型变量

-11.3 结构体变量的引用与初始化

--结构体变量的引用与初始化

-11.4 结构体数组

--结构体数组

--结构体数组

-11.5 指向结构体类型数据的指针

--指向结构体类型数据的指针

--指向结构体类型数据的指针

第12章 文件

-12.1 文件的基本概念和文件指针

--文件的基本概念和文件指针

--文件的基本概念和文件指针

-12,2 文件的打开和关闭

--文件的打开和关闭

--文件的打开和关闭

-12.3 文本文件读写

--文本文件读写

--文本文件读写

-12.4 二进制文件读写

--二进制文件读写

--二进制文件读写

格式化输入scanf及字符数据的非格式化输入输出笔记与讨论

也许你还感兴趣的课程:

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