5大C语言输入函数知多少?

C语言编程基础

共 1518字,需浏览 4分钟

 · 2020-12-29

前言

上章节讲解了《C语言四大内置输出函数你知多少?C语言基本程序交互之输出到屏幕》,本栏目主要讲解C语言基本交互处理之输入篇。学会基本的输入和输出,大家就可以做一些简单的交互咯。

C语言内置输入函数

C语言提供了执行输入操作的内置函数。输入操作用于从键盘读取用户值(输入)。c语言提供以下内置输入功能:

  1. scanf():标准输入

  2. getchar():字符输入

  3. getch():不可见,字符输入

  4. gets():字符串输入

  5. fscanf():格式化写入

C语言scanf函数

scanf函数三要素:

  • scanf用于从键盘读取不同数据类型的多个数据值。

  • scanf需属于“ stdio.h ” 的头文件

  • scanf使用#include包含头文件

1

scanf读取数据到变量

值得一提的是:vs中对这个函数做了一些修改,推荐使用更为安全的scanf_s 函数 

不想用在程序最上面加上宏定义去掉安全检查。

即:#define _CRT_SECURE_NO_WARNINGS

或者修改项目属性去掉SDL检查

当然你也可以使用他改进后的scanf函数,也就是scanf_s

2

scanf同时输入不同数据

scanf输入不同数据的时候,采用不同的格式控制字符即可。注意的是通常scanf函数的格式控制字符是不需要精度控制的哦。如下测试代码:

C语言中格式控制字符常用的主要有以下:

  1. int : %d

  2. float: %f

  3. double:%lf

  4. char:%c

  5. 字符串:%s

  6. 十六进制:%x

  7. 八进制:%o

  8. 指针类型:%p

  9. 无符号整形:%u

还有一些比较少用的在这里就不列举不出来。

3

scanf函数的返回值

scanf函数返回一个整数值,该值等于使用scanf函数读取的输入值的总数,如下测试代码:

4
scanf函数的取值原理图

从上图中的可以看到,当我们做一次完整输入的时候, 缓冲区中还存在一个\n字符 ,所以我们再做字符输入的时候经常存在跳过现象如下图:

如何避免呢?清空缓冲区就好了,在字符或者字符输入之前清空缓冲区就好了,一般有以下函数:

  1. setbuf(stdin,NULL);

  2. fflush(stdin);

当然你也可以自己写代码避免,如下测试代码:

gechar函数

getchar函数用于从键盘读取字符并将其返回给程序。此功能用于只读单个字符。要读取多个字符,我们需要多次写入或使用循环语句。考虑以下示例:

getc函数

getch函数类似于getchar函数。getch函数用于从键盘读取字符并将其返回给程序。此功能用于只读单个字符。要读取多个字符,我们需要多次写入或使用循环语句。考虑以下示例程序:

注意点:

  • getch属于conio.h,即用前需#include

  • vs中该函数要使用_getch

gets函数

gets函数用于读取一行字符串并将其存储到字符数组中。gets函数读取一行字符串或字符序列,直到换行符号进入。考虑以下示例程序:

注意点:

  • vs中该函数该函数改为gets_s ,增加一个长度参数

上图代码中数组如果没有学习的同学后续文章将会详细讲解。

fscanf函数

fscanf函数与文件的概念一起使用。fscanf函数用于从文件中读取数据值。如果要使用fscanf函数,必须在读取模式下打开文件,而键盘上可以使用stdin表示。故有以下案例:

这个更多的是格式化读写文件,后续章节会详细讲解

尾言

本栏目作业:从键盘键入长方形的边信息,求解长方形的面积和周长,打印出面积和周长



浏览 14
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报