Arce 发表于 2021-8-6 13:13:06

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



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

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

[*]scanf():标准输入
            
[*]getchar():字符输入
            
[*]getch():不可见,字符输入
            
[*]gets():字符串输入
            
[*]fscanf():格式化写入
            

                      C语言scanf函数
scanf函数三要素:

[*]scanf用于从键盘读取不同数据类型的多个数据值。
                  
[*]scanf需属于“ stdio.h ” 的头文件
                  
[*]scanf使用#include<stdio>包含头文件
                  

1                                             scanf读取数据到变量
值得一提的是:vs中对这个函数做了一些修改,推荐使用更为安全的scanf_s 函数 
不想用在程序最上面加上宏定义去掉安全检查。
即:#define _CRT_SECURE_NO_WARNINGS
或者修改项目属性去掉SDL检查

当然你也可以使用他改进后的scanf函数,也就是scanf_s
2                                             scanf同时输入不同数据scanf输入不同数据的时候,采用不同的格式控制字符即可。注意的是通常scanf函数的格式控制字符是不需要精度控制的哦。如下测试代码:

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

[*]int : %d
                  
[*]float: %f
                  
[*]double:%lf
                  
[*]char:%c
                  
[*]字符串:%s
                  
[*]十六进制:%x
                  
[*]八进制:%o
                  
[*]指针类型:%p
                  
[*]无符号整形:%u
                  
还有一些比较少用的在这里就不列举不出来。
3                                             scanf函数的返回值scanf函数返回一个整数值,该值等于使用scanf函数读取的输入值的总数,如下测试代码:

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

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

[*]setbuf(stdin,NULL);
                  
[*]fflush(stdin);
                  
当然你也可以自己写代码避免,如下测试代码:


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



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

注意点:

[*]getch属于conio.h,即用前需#include <conio.h>
                  
[*]vs中该函数要使用_getch
               

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

注意点:

[*]vs中该函数该函数改为gets_s ,增加一个长度参数
                  
上图代码中数组如果没有学习的同学后续文章将会详细讲解。

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

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

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





本文分享自微信公众号 - C语言编程基础(goodStudyCode)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。


文档来源:51CTO技术博客https://blog.51cto.com/u_15297386/3289544
页: [1]
查看完整版本: 5大C语言输入函数知多少?