C/C++ scanf 函数中%s 和%c 的简单差别

首先声明:在键盘中敲入字符后,字符会首先保存在键盘缓冲区中供scanf函数读取(scanf。getchar等函数是读取缓冲区,getch函数是读取的控制台信息,即为直接从键盘读取)。另外特别注意键盘上敲入回车实际为“\r\n”,但存储到缓冲区时候会舍弃‘\r’而仅仅存储\n.比如我们敲入字符“12345回车”。缓冲区内存储的为“12345\n”.

文章中“_”代表空格

代码:

char *s;

scanf("%s",s);

printf("%s\n",s);

scanf("%s",s);

printf("%s\n",s);

例:

输入:123_345回车            “_”代表空格

输出:123

           345

分析:对于scanf以%s格式输入时候。“空格、换行符、TAB”等是作为两个数据的分隔符存在的。即分隔符前后是两个数据,读入时候分隔符不读入。

例:

输入:123回车

        456回车

输出:123

           456

原因:如事例1,输入123回车后。缓冲区内存的是123\n。第一次读入后,缓冲区内仅仅剩余了\n,当第二次读入时候。\n是以分隔符存在的。不读入第二次的是。故缓冲区中是没有数据存在的,所以须要继续输入数据。

例:

输入:_回车                     “_”代表空格

这样的输入会要求一直输入,这是由于空格和\n都是分隔符。没有数据。所以没办法读入。

相同直接输入回车也是一直要求输入


代码:

char *s;

scanf("%s",s);

printf("%s\n",s);

scanf("%c",s);

printf("%d\n",*s);

例:

输入:1234_12回车                     “_”代表空格

输出:1234

           32(空格的ASCII为32)

原因:对于第一个%s读入时遇到分隔符“空格”就停止,可是空格还是保存在缓冲区的。对于%c读入时候,“空格、\n、TAB”等是正常字符,所以第二次读入时候读取缓冲中的第一个字符“空格”。所以输出的是32.


事例2:

输入:123回车

输出:123

           10(\n的ASCII为10)

原因:%s读入后缓冲中指剩下了\n故第二次以%c读入时候就读入了\n。输出为10.

转载于:https://www.cnblogs.com/wzzkaifa/p/6911650.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言求100以内整除13的最大,VB程序设计的一道题,找出100以内能被3整除的所有数之和,并把值保存在一维数组中...

VB程序设计的一道题,找出100以内能被3整除的所有数之和,并把值保存在一维数组中以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!VB程序设计的一道题,找出1…

Cdn英文的读音音标_宋sir的美式音标教程 Unit 1 /i/ tea

剑桥国际英语语音教程(Pronunciation Pairs)是一本很优秀的美式口音学习教材,其特点是对一些读音相近的音标进行对比,可以帮助学习者进行更准确地道地发音。该教材唯一的缺点就是不够深入,很多知识点并没有进一步详细阐…

兰德报告:思维机器时代的威慑

来源:中国指挥与控制学会从全球来看人工智能和自主系统在军事上的应用逐渐增多,这可能影响危机和冲突中使用的威慑策略以及冲突的升级变化。到目前为止,威慑主要指人类设法阻止其他人采取特定行动的行为。如果参与思维和决策过程的不止人类&a…

c语言设计一维数组,一维数组 (1)C语言程序设计.pdf

C语言程序设计一维数组 C语焉不详内容提要1 一维数组的定义2 一维数组的初始化3 一维数组的引用怎样学好C语言?引例【案例】从键盘上输入某学科竞赛组6名成员的成绩(整数),求平均成绩、并找出最高分和最低分。分析:6名学生的成绩,…

在windows 2008 R2上安装sharepoint 2013时遇到提示必须安装 .netframeword4.5的处理办法...

近日,有个客户需要个测试环境,需要搭建一个sps2013的测试服务器 但基于服务器软件授权的考虑,让使用windows2008 作为系统服务器 但一安装就碰到个提示,要求先安装framework4.5。结合以往的经验 ,估计是系统太新了。后…

转子接地保护原理_转子一点接地保护和转子两点接地保护的作用及发生的原因和处理...

转子一点接地保护和转子两点接地保护的作用及发生的原因和处理转子一点接地保护:作用:用于监视发电机转子励磁回路绝缘(即发生接地或某处绝缘下降时报警)发生的原因:滑环绝缘环,转子槽口绝缘损坏,引线绝缘损坏&#xf…

华为等向联合国提议重构互联网:提议采用一种新的核心网络技术新标准,名为“New IP”...

来源:云头条新架构将支持尖端技术,华为曾表示,新技术的一些部分已经在建造中,相关部分已准备好在2021年之前进行测试。以下为《演示文稿》:《金融时报》消息,中国已向联合国建议对互联网的运作方式进行彻底…

C语言bound函数,C/C++-STL中lower_bound与upper_bound的用法以及cmp函数

ng-repeat里创建的自定义指令在ng里,所有的指令在按照意愿正常工作之前的都需要编译一下,包含angularJS的自定义指令. ng模板里的所有指令都会在angularJS加载完毕之后编译一下,所以那些自定义指令和事件才能工作. ...MSDTC事务配置最近再用SSIS做数据归档,里面用到了分布式事务…

jsfiddle 使用教程

最近有许多的Css 3 demo,因此为了方便查阅,就将demo部分放在 jsfiddle ,方便日后翻阅。 这是 JSFIDDLE 的官网文档,都是英文,不过对照看还是可以的:官方文档 HTML区域: 它的HTML区域已经包含 ht…

Nature重磅:管轶等发现穿山甲是SARS-CoV-2的中间宿主

来源:生物谷世界范围内正在爆发的SARS-CoV-2引起的肺炎COVID-19正在给全球人民带来巨大的灾难,了解其来源对于开发治疗和防止以后的再次流行具有重要意义。尽管蝙蝠很可能是SARS-CoV-2的宿主,但是我们仍然不知道可能促进其转移到人类身上的中…

matlab设置图片背景透明_Matlab保存透明图片程序

将以下代码复制到m文件并保存为“im2tm”,即可运行。function im2tm%%%%%%%%--------------------------------------------------------%%此函数将图片的背景处理成透明背景,并将处理后的图片保存为png格式的图片。%%先将要转换的图片放到当前目录下&am…

四位数码管秒表 c语言编程,4位共阴极数码管秒表设计仿真与程序

#include "reg51.h"#include "intrins.h"#define GPIO_DIG P2 //数据端#define uchar unsigned char //重命名关键字#define uint unsigned int //重命名关键字sbit K1P3^0; …

试卷汇编与解析二级C语言,计算机等级考试试卷汇编与解析

《计算机等级考试试卷汇编与解析(全真模拟):二级VisualC语言分册(2015新大纲)》包括以下分册:一级计算机信息技术及应用、二级VisualBasic、二级C语言、二级VisualC、二级VisualFoxPro。《计算机等级考试试卷汇编与解析(全真模拟):二级Visual…

SWT 安装

下载地址: http://www.eclipse.org/windowbuilder/download.php 看到页面如下:选择图片标记的 3.7 (Indigo) update site link 如下 http://download.eclipse.org/windowbuilder/WB/release/R201309271200/3.7/ 4.5 (Mars) link 如下: http:…

数字孪生十问:分析与思考

来源:北京航空航天大学,自动化科学与电气工程学院,数字孪生研究组摘 要:当前数字孪生备受学术界、工业界、金融界以及政府部门关注。然而各界对数字孪生存在不同的理解和认识,对数字孪生相关新概念、新名词、新技术之…

高中会考access数据库_高中信息技术会考ACCESS操作复习-mdb文件怎么打开

ACCESS操作复习1. 在Y:/9建立"***.mdb"数据库文件:启动ACCESS软件,菜单栏中文件——新建(在ACCESS窗口右上找到下图)注意:保存路径、文件名不能错,用下图方法做后缀名.mdb不要输入。否则零分2.打开"**"数据库…

ue4 通过指定路径加载资源_Aery的UE4 C++游戏开发之旅(4)加载资源创建对象

[toc]在UE4中,项目中的所有资源都是存储在硬盘中,当需要用到资源时,则需要将其加载进入内存中使用。为了更好的表示(引用)资源,UE4提供了两种引用资源的方式——硬引用、软引用。资源的硬引用硬性引用,即对象 A 引用对…

android相册幻灯片功能,Android实现幻灯片式图片浏览器

我们来实现一个幻灯片式图片浏览器:最下面一个画廊视图,选中画廊中的图片,会在上面的ImageSwitcher控件中显示大图。效果图如图实现方法:在布局文件中添加图片切换控件ImageSwitcher和画廊视图控件Galleryres/layout/main.xml:and…

卫星发现一个重要信号:路上货车跑起来

来源:新华社这是2万家物流公司货运车辆搭载的卫星定位系统数据对比。3月9日实际运行的跨省货运线路数量是2月9日的300%,大跨度的长线条明显增加,叠加效应使整个货运线路网更加密集。随着分区域差异化管控、打通交通堵点的落实,远距…

vue路由上的#/怎么去掉_vue 路由去掉url中的“#”

vue-router中默认使用的是hash模式,url中会带有“#”,例如“http://localhost:3000/#/”,这种情况我们遇到一个问题,就是服务端会在url后面补充参数,我需要拿到这个参数获取信息。但是有这个“#”,url就变成…