当前位置: 首页 > news >正文

关于C:scanf()的一些注意事项

今天在理解输入的时候发现了一些有趣的事情。

我们知道scanf()在读取的时候会默认跳过空白符(制表符、空格、换行符)。

例1:

scanf("%d %d",&a,&b);

Input:5 3

Output:5 3

 

例2:

scanf("%d%d",&a,&b);

Input:5 3

Output:5 3

我们能够观察到仍然通过空格符将5和3分隔开。

 

一般来说%d,%lf这些都可以自动跳过。但是%c和普通字符(不是以%开头的)无法跳过。

例3:

scanf("%dXYZ%d",&a,&b);

Input:5 XYZ 3

这时候的输出5是成功匹配上了,但是3没有匹配上。这是因为在此处,空格与X匹配失败,导致后面的b也没有成功输入。

最核心的是:在 scanf 的格式字符串里,只要两个转换说明符(%d、%s、%c……)之间没有出现“非空白的普通字符”,scanf 就会自动在它们之间插入“跳过任意空白”的行为!

在此处%d的隔壁是XYZ,因此需要严格遵守格式。而在例2中,%d%d连在一起,会根据上述逻辑自动跳过字符串中的空白!

Input:5XYZ3

Output:5 3

这样就可以成功匹配了。

 

本质上,在scanf()的参数中,如果存在空白符(空格,\t,\n),就意味着跳过任意多个空白字符。

例4:

scanf("%d    \n\n\n \t%d",&a,&b);

Input:5 3

Output:5 3

 

最后给读者留两个小问题:

针对例3,当Input为"5XYZ  3"的时候,Output是什么?

那当参数为"%d  ,%d",Input为"12,13"的时候,Output是什么?

 

Nowasiki.

http://www.rkmt.cn/news/69076.html

相关文章:

  • 2025年产品动画制作公司最新推荐,聚焦资质、案例、售后的实力品牌深度解析!
  • 把一个软件窗口部分内容置顶 的软件下载
  • 哔哩哔哩野生API宝典:从入门到精通
  • 第2篇Scrum冲刺博客
  • PbootCMS 指定栏目标签详解与应用场景
  • 动态数组
  • 【Linux进阶系列】:线程(上) - 详解
  • Solon AI 开发学习8 - chat - Vision(理解)图片、声音、视频
  • Python全栈项目:基于Django的电子商务平台编写
  • 【触想智能】工业触控一体机在工业应用中扮演的角色以及其应用场景分析
  • 租房买房必看4门口乱堆杂物,正在悄悄“截断”全家人的好运气!
  • 大模型安全:共享 GPU 本地内存泄露
  • 2025年12月AI SEO优化公司推荐:解锁智能搜索流量新密码
  • 2025年12月ChatGPT优化排名公司推荐
  • 2025年AI教育培训课程推荐榜:覆盖AI培训全场景指南
  • 2025年12月西安装修家装公司TOP5推荐:老房翻新/室内设计优选企业
  • 模切机厂家有哪些?国内知名企业推荐
  • Webpack/Vite等构建工具打包后,线上代码报错但本地正常,怎么办?
  • 哪些品牌的妇科炎症外用药效果好
  • 2025年热镀锌带钢口碑厂家TOP10,实力见证,镀锌打包扣/镀锌打包钢带/烤漆打包带/冷镀锌打包带/打包铁条热镀锌带钢生产厂家
  • 漆面保护膜品牌公司排名:国内优质车膜品牌推荐
  • 推荐专业的北京离婚财产纠纷律师及服务解析
  • 推荐靠谱的车衣品牌:市场热门选择及特点解析
  • 争取孩子抚养权找哪个律师靠谱?专业选择参考
  • 北京口碑好的涉外离婚律师选择指南与实务解析
  • 哪些AI企业有投资价值?聚焦行业潜力标的
  • 第十周第三天10.3
  • 北京知名婚姻律所推荐:聚焦婚姻家事法律服务机构
  • 2025 年热熔胶复合机最新推荐榜,技术实力与市场口碑深度解析,筛选优质源头厂家全自动/自动/无纺布/碳布/pur 热熔胶复合机公司推荐
  • 国内游旅行社哪家有优惠活动?2025年热门选择参考