函数:scanf

功能:执行格式化输入

用法:int scanf(char *format[,argument,...]);

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。

其调用格式为:      scanf("",);

scanf()函数返回成功赋值的数据项数,出错时则返回EOF。

其控制串由三类字符构成:

1.格式化说明符;2.空白符;3.非空白符;

一、格式化说明符

格式字符           说明

%a                 读入一个浮点值(仅C99有效) %A                 同上%c                 读入一个字符%d                 读入十进制整数%i                 读入十进制,八进制,十六进制整数%o                 读入八进制整数%x                 读入十六进制整数%X                 同上%c                 读入一个字符%s                 读入一个字符串%f                 读入一个浮点数%F                 同上%e                 同上%E                 同上%g                 同上%G                 同上%p                 读入一个指针%u                 读入一个无符号十进制整数%n                 至此已读入值的等价字符数%[]                扫描字符集合%%                 读%符号                附加格式说明字符表

修饰符                       说明

L/l 长度修饰符               输入"长"数据h 长度修饰符                 输入"短"数据W 整型常数                   指定输入数据所占宽度* 星号                       空读一个数据

二、空白符

空格,制表符和换行,一般scanf函数(格式字符为%c时除外)会在读操作中略去输入中一个或多个空白符,空白符可以,直到第一个非空白字符出现为止,遇到空白字符时读取停止,并把空白字符留在输入队列中。

三、非空白字符

一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

四、特别说明 %c和%s

%s 是读字符串,读取时开始时忽略空白符,从第一非空白符开始读,直到遇到空白符停止,将空白符留在输入队列

%c时读字符,如何字符都可以读取(包括空白符)

例1:

char *s;

scanf("%s",s);

printf("%s",s);

scanf("%s",s);

printf("%s",s);

输入

123_456回车//_代表空格

输出:123

456

例2:

char str[10];

scanf("%c", &ch);

输入:

回车

会一直要求输入,因为空格回车都是空白符,没有数据,所以没办法读入

例3:

char str[10];charch;

scanf("%s", str);

scanf("%c", &ch);

printf("%s", str);

printf("%c", ch);

输入

1234_123

输出1234空格

对于第一个%s读入时遇到分隔符“空格”就停止,但是空格还是保存在缓冲区的。对于%c读入时候,“空格、

、TAB”等是正常字符,所以第二次读入时候读取缓冲中的第一个字符“空格”

c语言 scanf %e,C语言scanf函数详细解释相关推荐

  1. Python numpy中的hsplit()和vsplit()函数详细解释

    在网上看到了一些关于vsplit()函数和hsplit()函数的解释,感觉不是很好理解, 同时有的也不是很全面.这里我想根据我的个人理解,用我自己的语言表达出这两个函数的解释. hsplit():按列 ...

  2. 【printf】sprintf字符串转数值、数值转字符,拼接字符,函数详细解释 Printf 打印数值...

    1.数值转成字符: sprintf个函数,如: sprintf(s, "%d", 123); //产生"123" 2.字符串转成数值: while(*BandR ...

  3. c语言中signal函数详细解释说明

    c语言中signal函数详细解释说明     对于 信号处理函数 位于 <signal.h> 中. void ( *signal( int sig, void (* handler)( i ...

  4. c语言scanf在%后加.意义,C语言scanf函数详细解释

    while(scanf("%d,%d",&a,&b)!=2)fflush(stdin); c=a+b; printf("%d+%d=%d",a, ...

  5. iconv函数详细解释

    最近在使用iconv函数,感觉iconv的函数参数很奇怪.仔细研究了一下,发现iconv实际上一个返回多个值的函数.此函数利用函数参数,同时返回了好几个值,每个函数参数既是入参,也是出参.详细解释如下 ...

  6. C语言scanf函数详细解释,[转载]C语言printf和scanf函数详细用法

    Printf和Scan函数的使用方法 一 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息.在编写程序时经常会用到此函数.printf()函数的调用格式为: prin ...

  7. C语言学习——sprintf函数详细解释及其用法

    函数功能: 把格式化的数据写入某个字符串 头文件: stdio.h 函数原型: int sprintf( char *buffer, const char *format, [ argument] - ...

  8. 数据结构-顺序表-c++语言-模板类实现代码(附详细解释) _清风明月

    #include<iostream> #include<new> #define MAXSIZE 1000 #define REALLOC 10 using namespace ...

  9. sprintf函数详细解释

    printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说 起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多 吗?在 ...

最新文章

  1. mutt使用小技巧 指定发件人 添加附件
  2. OCX和DLL的区别
  3. 混合云如何落地?光环有云携手AWS一触即发
  4. 程序员应当学会“偷懒”
  5. nginx(一)安装与命令总结
  6. 3.1.5 动态分区分配算法
  7. 北京内推 | 微软亚洲研究院DKI组王露研究员招聘强化学习方向研究实习生
  8. 深度学习之循环神经网络(5)RNN情感分类问题实战
  9. 用JavaScript中的示例进行fill()函数
  10. arduino控制直流电机_Arduino的高电流直流电机控制板
  11. 使用GDAL工具对FY3系列卫星数据进行校正
  12. java 后端开发好吗_Java语言哪里好?为什么那么多人选择Java后端开发?
  13. 测试工程师进阶之测试用例发散思维(二)
  14. [WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM 1
  15. 【漆天编程】MT4和MT5有什么区别?这是我见到过的最好的回答
  16. 有会用正则表达式解这个吗?
  17. UPC --- 2018年第三阶段个人训练赛第五场 --- A题 Make a Rectangle(6595)
  18. STM32---CAN2.0B读取新能源汽车BMS报文
  19. Windows Terminal 自定义快捷键绑定
  20. 三聚氰胺,究竟是谁的错?

热门文章

  1. Flink-时间语义以及WaterMark
  2. ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析
  3. 年净赚15亿美元,数学教授做对冲基金,詹姆斯·西蒙斯破译通往财富密码!
  4. 计算机网络--- 电子邮件
  5. js中的caller属性和callee属性
  6. “灵异类”灭火机器人
  7. 阿里云 IoT Studio 升级版新增解决方案引擎 大幅提升方案交付效率
  8. I-Q Quadrature Generator正交信号发生器
  9. 【一周头条盘点】中国软件网(2018.9.3~2018.9.7)
  10. 建筑CAD教程:CAD软件中怎么画双分三跑梯段?