C语言scanf函数详解和示例
文章目录
- 一、数据输入
- 二、断章取义
- 三、scanf输入
- 1、输入整数
- 2、输入字符
- 3、输入浮点数
- 4、输入字符串
- 5、输入多个内容
- 6、示例(book13.c)
- 四、注意事项
- 五、获取视频教程
- 六、版权声明
一、数据输入
编写程序的主要目的就是为了处理数据。数据从哪里来?数据的来源有很多种方式,如从磁盘文件中读取数据、从数据库中读取数据、从网页中抓取数据等,还有一种原始的方式就是从键盘输入数据。
在C语言中,有三个函数可以从键盘获得用户输入。
getchar:输入单个字符,保存到字符变量中。
gets:输入一行数据,保存到字符串变量中。
scanf:格式化输入函数,一次可以输入多个数据,保存到多个变量中。
二、断章取义
三十年前,个人电脑还不流行的时候,软件主要用C语言编写,包括操作界面,数据的输入和输出函数都很重要。现在,数据的输入和展示由网页和APP等软件去完成,C程序主要用于数据处理和网络通信,程序运行在后台,没有操作界面。所以,getchar、gets、scanf这几个函数几乎不用。
如果您是初学者,采用scanf从键盘输入数据,便于演示程序的功能,所以我们只需要学习scanf函数的简单用法即可,getchar和gets函数无需关注。
三、scanf输入
scanf函数是格式化输入函数,用于接受从键盘输入的数据,用户输入数据完成后,按回车键(Enter)结束输入。
scanf函数的调用方法是:
scanf(格式化字符串,参数列表);
注意,不要在scanf的格式化字符串的最后加\n。
1、输入整数
输入整数的格式用%d表示,在参数中列出整数型变量名,用于保存输入的数据。
在输入数据之前,一般要先输出一句话提示用户。下同。
int age=0;printf("请输入您的年龄:"); // 提示文字不要换行,让用户在后面输入,下同。scanf("%d",&age); // 在变量名前要加符号&,取变量的地址。
2、输入字符
输入字符的格式用%c表示,在参数中列出字符型变量名,用于保存输入的数据。
char xb=0;printf("请输入您姓别:"); scanf("%c",&xb); // 在变量名前要加符号&
3、输入浮点数
输入浮点数的格式用%lf表示,在参数中列出浮点型变量名,用于保存输入的数据。
double weight=62.5;printf("请输入您体重:"); scanf("%lf",&weight); // 在变量名前要加符号&。
4、输入字符串
输入字符串的格式用%s表示,在参数中列出字符串变量名,用于保存输入的数据。
char name[21];memset(name,0,sizeof(name));printf("请输入您姓名:"); scanf("%s",name); // 注意了,字符串变量名前可以不加符号&。
5、输入多个内容
调用一次scanf函数可以输入多个数据,全部的数据输入完成后按回车键结束输入。
int age=0;char xb=0;double weight=0;char name[21];memset(name,0,sizeof(name));printf("请输入您的姓名、姓别(x-男;y-女),年龄和体重,中间用空格分隔:");scanf("%s %c %d %lf",name,&xb,&age,&weight); // 只有name变量前没加&。
scanf函数第一个参数(格式化字符串)的格式与后面的参数列表(变量的列表)要一一对应,一个萝卜一个坑的填进去,不能多,不能少,顺序也不能错,否则会产生意外的结果。
6、示例(book13.c)
/** 程序名:book13.c,此程序演示scanf函数输入数据。* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <string.h>int main()
{int age=0;char xb=0;double weight=0;char name[21];memset(name,0,sizeof(name));printf("请输入您的姓名、姓别(x-男;y-女),年龄和体重,中间用空格分隔:");scanf("%s %c %d %lf",name,&xb,&age,&weight); // 只有name变量前没加&,其它的都加了。printf("您的姓名是:%s,姓别:%c,年龄:%d岁,体重%lf公斤。\n",name,xb,age,weight);return 0;
}
运行效果
四、注意事项
1)本文只学习scanf函数最简单的用法。
2)scanf函数只是在C程序基本知识的学习中才用到,在实际开发中基本上不用。
3)scanf函数的变量列表,除了字符串,其它的变量前面都要加&,表示取地址,如果不加,程序编译不会报错,但运行时会出现意想不到的后果(1-赋值不成功;2-段错误Core dump)。
五、获取视频教程
百万年薪程序员录制,《C/C++高性能服务开发基础》视频教程已在CSDN学院发布,优惠价12元,地址如下:
https://edu.csdn.net/course/play/29402
六、版权声明
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
C语言scanf函数详解和示例相关推荐
- [C语言] scanf 函数详解多组输入法和gitee 自荐
自荐 gitee>>> C语言学习练习: C语言学习练习 上面是我的gitee C语言仓库链接,欢迎大家来看看我写的代码.!(◦˘ ³(♡ŐωŐ♡)(给大家推荐gitee(码云)这个 ...
- C语言scanf函数详解
函数名: scanf 功 能: 运行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设 ...
- C语言printf函数详解和示例
文章目录 1.类型符(type) 2.宽度(width) 3.对齐标志(flags) 4.精度(prec) 5.格式化输出到字符串 6.获取视频教程 7.版权声明 C语言格式化输出的函数有printf ...
- c语言memset对应java,C语言memset函数详解
C语言memset函数详解 memset() 的作用:在一段内存块中填充某个给定的值,通常用于数组初始化与数组清零. 它是直接操作内存空间,mem即"内存"(memory)的意思. ...
- R语言which函数详解以及Rcpp改写
R语言which函数详解以及Rcpp的改写 引言 which 函数的介绍 which函数的一些小例子 1 2 which函数的改进以及时间对比 引言 首先来介绍一下R语言which函数的作用:whic ...
- scanf函数详解与缓冲区
1.基本信息 函数原型: int scanf( char *format, args, ...); 函数返回值: 读入并赋给args的数据个数,遇到文件结束返回EOF,出错返回0. 函数功能: sca ...
- 【C语言】函数详解(入门到进阶)
目录 前言 一.什么是函数 二.函数的构成 三.函数的调用和声明 四.函数的参数 五.函数的递归 总结 写在后面 前言 最近帮家里的小朋友整理一些学习C语言的知识点 有整体入门基础文章--[C语言]拯 ...
- waitpid函数详解+应用示例
来源:微信公众号「编程学习基地」 文章目录 waitpid函数的使用 waitpid()函数定义 参数详解 使用示例 waitpid函数的使用 当用fork启动一个新的子进程的时候,子进程就有了新的生 ...
- C语言strlen函数详解
strlen函数详解 一.strlen函数简介 1.函数原型 2.注意事项 二.strlen函数模拟实现 1.计数器方式 2.递归实现 3.指针-指针实现 一.strlen函数简介 1.函数原型 si ...
最新文章
- .NET中获取电脑名、IP及用户名方法
- 文巾解题 196. 删除重复的电子邮箱
- 移动APP的开发迭代离不开测试,你搞清楚其中的关键点了吗?
- 从接触FPGA开始...
- 今天正式开通51CTO技术博客
- textbox 和textera 文本框多行后不能拉伸
- firefox使用掘金插件_Mozilla发布新的附加组件来修复旧版Firefox中的扩展禁用问题...
- SpringMVC Java config freemarker
- 【PHP】wx_sample.php 微信初始化开发者模式
- 荣耀play的android版本,荣耀Play3搭载了哪个版本系统 聪明的系统更懂你
- Android关闭输入法
- Ubuntu 16.04+网易云音乐+Adobe Flash+腾讯QQ
- 2020新款真无线蓝牙耳机盘点,双11高性价比十款蓝牙耳机推荐
- Ubuntu18.04 安装SDN ryu+mininet
- BAT大厂面试题以及答案(一)
- 如何做一名优秀的助教@助教的那些事(助教总结)
- 计算机基础知识与公文写作,公文写作与计算机基础知识.doc
- java对接阿里云短信服务详解(验证码,推广短信,通知短信)
- 基于云开发的智慧校园小程序的设计与实现
- 增加字段sql,SQL语句增加列、修改列、删除列
热门文章
- redis日志_面试题之Redis如何保证系统宕机数据不会丢失?
- 无法显示添加端口对话框 服务器,服务器添加开放端口
- 计算机二级晓云是企业人力,全国计算机二级MsOffice真题试卷wore
- linux c++ 函数效率,C++高精度性能测试函数
- linux shell 命令记录,linux常用shell命令记录
- nuxt 全局css_解决nuxt 自定义全局方法,全局属性,全局变量的问题
- 力扣349. 两个数组的交集(JavaScript)
- 计算机普通用户禁止修改c盘,保护C盘数据win7中设置禁止修改C盘文件的方法
- 微信服务通知消息找回_如何通过微信第三方平台群发服务号消息通知?
- windows c++ 服务 当前用户提权_windows xp 提权