C语言:当scanf语句中有转义字符时,你该这样输入

news2024/10/6 16:18:57

最近在重新学习一下C语言的有关知识,突然发现现在来看过去所学的知识,自己的感受又有很大的不同,就拿输入语句scanf来说吧!看到CSDN问答上有一个关于scanf语句的问题,当时题主代码很简单,可是就是没有输出语句的打印,我也琢磨了很久,就是一直没有找到他的代码问题或者输入操作所在,直到今天重新学习一下C语言,眼前一亮,找到当时题主的问题所在了,于是写了这篇文章。

文章目录

        • 1. 一个有关scanf输入语句的示例
        • 2. 常见的转义字符

1. 一个有关scanf输入语句的示例

前一段时间看到CSDN问答上有一个关于scanf输入语句的问题,具体实例小编已经记不清楚了,但是小编记得当时题主的问题,具体问题不好描述,还是看相关代码或者截图吧!

#include <stdio.h>
#include <stdlib.h>

int main(){
    int a;
    scanf("%d\n",&a);
    printf("%d\n",a);
    system("pause");
    return 0;
}

当时那位题主就是问为什么没有输出,如下:
在这里插入图片描述
上述图片中的操作位输入100,然后按键盘Enter多个,一直没有看到输出语句。
现在小编通过自己学习发现,上述输入语句要想执行成功,需要在输入100后面直接加\n即可,如下:
请添加图片描述
如果是如下输入语句(两个变量),那情况又一样了。

#include <stdio.h>
#include <stdlib.h>

int main(){
    int a,b;
    scanf("%d\n%d\n",&a,&b);
    printf("%d,%d\n",a,b);
    system("pause");
    return 0;
}

此时,如果输入语句位123\n456\n,那么结果就会有问题了。
请添加图片描述
可以发现变量b的值是不对的,此时应该这样输入,如下:
请添加图片描述
通过上述示例,小编觉得输入语句有这样的规定,如果在输入语句中出现转义字符,只有一个转义字符且出现在末尾,那么输入语句会把这个转义字符当成一个普通字符来看;如果出现在中间,那么输入语句会认为这个转义字符就是转义字符,直接输入即可,如下:
请添加图片描述
请添加图片描述
如果有多个转义字符,那么在中间的转义字符直接输入对应的操作(如\n,点击键盘Enter)即可,在末尾的则输入转义字符本身即可(如\n输入\n),如下:
请添加图片描述
请添加图片描述

最后,再总结一下scanf语句,如果在“格式控制字符串”(指"%d%d"这些语句)中除了声明以外,还有其他字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。(如果其中有转义字符,那么在中间的转义字符直接点击相应的键盘操作即可,而在末尾的转义字符则输入转义字符本身即可[即\n直接输入\n,把\n当成普通字符来看待即可,不要把它看成换行符号])。

2. 常见的转义字符

对了,为了方便读者了解还有哪些转义字符,小编把常用的转义字符用表格排列出来。

转义字符字符值
\’单撇号(')
\"双撇号(")
\?问号(?)
\\反斜线(\)
\a警告(alert)
\b退格(backspace)
\f换页(form feed)
\n换行
\r回车
\t水平制表符
\v垂直制表符

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

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

相关文章

idea:地址被占用

问题启动idea报&#xff1a;java.net.BindException: Address already in use: bind&#xff0c;具体截图如下&#xff1a;解决步骤1、首先想到的是改idea端口&#xff0c;但按网上方法试下了几个4位数和5位数的端口&#xff0c;没啥作用2、根据idea抛异常的弹出框提示&#xf…

在函数中,用指针接收就可以改变相应的内容吗??

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 我们在不管指针那篇博客&#xff0c;还是在函数那篇博客中&#xff0c;我都给大家讲解过…

Unity 打包代码到 DLL

Unity 打包代码到 DLL 使用Unity API PlayerBuildInterface.CompilePlayerScripts 将项目中的代码生成为 DLL 程序集 在 Editor 文件夹下新建脚本 CompileDll using UnityEngine; using UnityEditor; using UnityEditor.Build.Player; using System.IO;public class Compile…

【springmvc】获取请求参数

SpringMVC获取请求参数 1、通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 RequestMapping("/testParam") public String testParam(HttpServletRequest request)…

Allegro如何输出ODB文件操作指导

Allegro如何输出ODB文件操作指导 在PCB设计完成之后,需要输出生产文件用于生产加工,除了gerber文件可以用生产制造,ODB文件同样也可以用于生产,如下图 用Allegro如何输出ODB文件,具体操作如下 首先确保电脑上已经安装了ODB这个插件,版本不受限制点击File

开学季准备哪些电容笔好?apple pencil一代平替笔推荐

一支简单而又易用的电容笔&#xff0c;配上我们的ipad&#xff0c;将会为我们的工作、学习带来更多的乐趣。在画画时&#xff0c;也不能忽略电容笔的重要作用。关于电容笔的相关知识&#xff0c;本人也略有知不少&#xff0c;以下是我今天要带来的几款具有极高性价比的电容笔&a…

【C#进阶】C# 特性

序号系列文章10【C#基础】C# 正则表达式11【C#基础】C# 预处理器指令12【C#基础】C# 文件与IO文章目录前言1&#xff0c;特性的概念1.1 特性的属性1.2 特性的用途2&#xff0c;特性的定义2.1 特性参数2.2 特性目标3&#xff0c;预定义特性3.1 AttributeUsage3.2 Conditional3.2…

【springmvc】java bean 的区分

bean JavaBean分为两类&#xff1a; 一类称为实体类Bean&#xff1a;专门存储业务数据的&#xff0c;如 Student、User 等一类称为业务处理 Bean&#xff1a;指 Service 或 Dao 对象&#xff0c;专门用于处理业务逻辑和数据访问。 在一个java的springboot中&#xff0c;一般…

day59-day60【代码随想录】二刷数组

文章目录前言一、移动零&#xff08;力扣283&#xff09;【双指针】二、轮转数组&#xff08;力扣189&#xff09;三、寻找数组的中心下标&#xff08;力扣728&#xff09;四、和为 K 的子数组&#xff08;力扣560&#xff09;五、按奇偶排序数组 II&#xff08;力扣922&#x…

【SPSS】多因素方差分析详细操作教程(附案例实战)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

【微信小程序-原生开发】实用教程14 - 列表的分页加载,触底加载更多(含无更多数据的提醒和显示,自定义组件)

此页可在动态列表的基础上完善&#xff0c;也可以单独学习 【微信小程序-原生开发】实用教程10 - 动态列表的新增、修改、删除 https://blog.csdn.net/weixin_41192489/article/details/128835069 效果预览 核心技术 列表的分页加载 skip 跳跃到指定下标开始查询limit 限制返…

Vulnhub系列:SickOS1.1

靶机地址&#xff1a;SickOS1.1渗透思路&#xff1a;信息收集对于目标靶机进行扫描&#xff0c;可以利用nmap或arp-scan -l进行查询&#xff0c;查询到靶机后&#xff0c;探测其开放的端口&#xff0c;常见的端口21、22、80、3306、445等等&#xff0c;对于不同的端口进行不同的…

博途PLC开放式以太网通信之TRCV_C指令编程应用

博途PLC开放式以太网通信TSENG_C指令应用,请参看下面的文章链接: 博途PLC 1200/1500PLC开放式以太网通信TSEND_C通信(UDP)_plc的udp通信_RXXW_Dor的博客-CSDN博客开放式TSEND_C通信支持TCP 、UDP等,关于TSEND_C的TCP通信可以参看下面这篇文章:博途PLC 1200/1500PLC开放式…

存储器分类

存储器(Memory)包括&#xff1a; RAM(Random Access Memory)&#xff08;计算机运行内存、CPU的L1/L2 Cache等&#xff09;、 ROM(Read Only Memory)&#xff08;用于BIOS等固化程序/数据的存储&#xff09;和 Flash&#xff08;可用于机械硬盘等&#xff09;。 存储器&#x…

现代神经网络(VGG),并用VGG16进行实战CIFAR10分类

专栏&#xff1a;神经网络复现目录 本章介绍的是现代神经网络的结构和复现&#xff0c;包括深度卷积神经网络&#xff08;AlexNet&#xff09;&#xff0c;VGG&#xff0c;NiN&#xff0c;GoogleNet&#xff0c;残差网络&#xff08;ResNet&#xff09;&#xff0c;稠密连接网络…

Blender Python材质处理入门

本文介绍在 Blender 中如何使用 Python API 获取材质及其属性。 推荐&#xff1a;用 NSDT场景设计器 快速搭建3D场景。 1、如何获取材质 方法1、 获取当前激活的材质 激活材质是当前在材质槽中选择的材料。 如果你选择一个面&#xff0c;则活动材料将更改为分配给选定面的材质…

ceph-ansible部署Ceph Pacific版本集群

文章目录环境规划节点初始化设置ssh免密主机名解析时间同步关闭防火墙部署ceph下载ceph-ansible修改配置文件执行部署验证集群状态扩容mon节点扩容osd节点环境规划 总共9个节点&#xff0c;3个mon节点&#xff0c;6个osd节点&#xff0c;每个osd节点3块50G的osd磁盘 主机名os…

Linux命令系统总结

Linux Linux常用操作_linux基本操作_槑の少年的博客-CSDN博客 help help 命令 &#xff1a;获得 shell 内置命令的帮助信息&#xff0c;常用形式 help cd ls --help 文件夹级 常用参数&#xff1a; cd 绝对路径 &#xff1a;切换路径 cd 相对路径 &#xff1a;切换路径 …

移动web(三)

her~~llo&#xff0c;我是你们的好朋友Lyle&#xff0c;是名梦想成为计算机大佬的男人&#xff01; 博客是为了记录自我的学习历程&#xff0c;加强记忆方便复习&#xff0c;如有不足之处还望多多包涵&#xff01;非常欢迎大家的批评指正。 媒体查询 目标&#xff1a;能够根据…

凌恩生物资讯

凌恩生物转录组项目包含范围广&#xff0c;项目经验丰富&#xff0c;人均10年以上项目经验&#xff0c;其中全长转录组测序研究基因结构已经成为发文章的趋势&#xff0c;研究物种包括高粱、玉米、拟南芥、鸡、人和小鼠、毛竹、棉花等。凌恩生物提供专业的全长转录组测序及分析…