文章目录

  • 一、数据输入
  • 二、断章取义
  • 三、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函数详解和示例相关推荐

  1. [C语言] scanf 函数详解多组输入法和gitee 自荐

    自荐 gitee>>> C语言学习练习: C语言学习练习 上面是我的gitee C语言仓库链接,欢迎大家来看看我写的代码.!(◦˘ ³(♡ŐωŐ♡)(给大家推荐gitee(码云)这个 ...

  2. C语言scanf函数详解

    函数名: scanf  功 能: 运行格式化输入  用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设 ...

  3. C语言printf函数详解和示例

    文章目录 1.类型符(type) 2.宽度(width) 3.对齐标志(flags) 4.精度(prec) 5.格式化输出到字符串 6.获取视频教程 7.版权声明 C语言格式化输出的函数有printf ...

  4. c语言memset对应java,C语言memset函数详解

    C语言memset函数详解 memset() 的作用:在一段内存块中填充某个给定的值,通常用于数组初始化与数组清零. 它是直接操作内存空间,mem即"内存"(memory)的意思. ...

  5. R语言which函数详解以及Rcpp改写

    R语言which函数详解以及Rcpp的改写 引言 which 函数的介绍 which函数的一些小例子 1 2 which函数的改进以及时间对比 引言 首先来介绍一下R语言which函数的作用:whic ...

  6. scanf函数详解与缓冲区

    1.基本信息 函数原型: int scanf( char *format, args, ...); 函数返回值: 读入并赋给args的数据个数,遇到文件结束返回EOF,出错返回0. 函数功能: sca ...

  7. 【C语言】函数详解(入门到进阶)

    目录 前言 一.什么是函数 二.函数的构成 三.函数的调用和声明 四.函数的参数 五.函数的递归 总结 写在后面 前言 最近帮家里的小朋友整理一些学习C语言的知识点 有整体入门基础文章--[C语言]拯 ...

  8. waitpid函数详解+应用示例

    来源:微信公众号「编程学习基地」 文章目录 waitpid函数的使用 waitpid()函数定义 参数详解 使用示例 waitpid函数的使用 当用fork启动一个新的子进程的时候,子进程就有了新的生 ...

  9. C语言strlen函数详解

    strlen函数详解 一.strlen函数简介 1.函数原型 2.注意事项 二.strlen函数模拟实现 1.计数器方式 2.递归实现 3.指针-指针实现 一.strlen函数简介 1.函数原型 si ...

最新文章

  1. .NET中获取电脑名、IP及用户名方法
  2. 文巾解题 196. 删除重复的电子邮箱
  3. 移动APP的开发迭代离不开测试,你搞清楚其中的关键点了吗?
  4. 从接触FPGA开始...
  5. 今天正式开通51CTO技术博客
  6. textbox 和textera 文本框多行后不能拉伸
  7. firefox使用掘金插件_Mozilla发布新的附加组件来修复旧版Firefox中的扩展禁用问题...
  8. SpringMVC Java config freemarker
  9. 【PHP】wx_sample.php 微信初始化开发者模式
  10. 荣耀play的android版本,荣耀Play3搭载了哪个版本系统 聪明的系统更懂你
  11. Android关闭输入法
  12. Ubuntu 16.04+网易云音乐+Adobe Flash+腾讯QQ
  13. 2020新款真无线蓝牙耳机盘点,双11高性价比十款蓝牙耳机推荐
  14. Ubuntu18.04 安装SDN ryu+mininet
  15. BAT大厂面试题以及答案(一)
  16. 如何做一名优秀的助教@助教的那些事(助教总结)
  17. 计算机基础知识与公文写作,公文写作与计算机基础知识.doc
  18. java对接阿里云短信服务详解(验证码,推广短信,通知短信)
  19. 基于云开发的智慧校园小程序的设计与实现
  20. 增加字段sql,SQL语句增加列、修改列、删除列

热门文章

  1. redis日志_面试题之Redis如何保证系统宕机数据不会丢失?
  2. 无法显示添加端口对话框 服务器,服务器添加开放端口
  3. 计算机二级晓云是企业人力,全国计算机二级MsOffice真题试卷wore
  4. linux c++ 函数效率,C++高精度性能测试函数
  5. linux shell 命令记录,linux常用shell命令记录
  6. nuxt 全局css_解决nuxt 自定义全局方法,全局属性,全局变量的问题
  7. 力扣349. 两个数组的交集(JavaScript)
  8. 计算机普通用户禁止修改c盘,保护C盘数据win7中设置禁止修改C盘文件的方法
  9. 微信服务通知消息找回_如何通过微信第三方平台群发服务号消息通知?
  10. windows c++ 服务 当前用户提权_windows xp 提权