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

C之易错注意点转义字符,sizeof,scanf,printf

目录

前言

一:转义字符

1.转义字符顾名思义就是转换原来意思的字符

2.常见的转义字符

1.特殊\b

2. 特殊\ddd和\xdd

 3.转义字符常错点----计算字符串长度

注意 :

如果出现\890,\921这些的不是属于\ddd类型的,,不是一个字符,ddd表示1~3个八进制数字

二:sizeof操作符 

1.含义:

2.使用时注意的几点

三:printf函数

1.注意点

2.常见占位符

3.限定宽度,输出部分字符串,函数返回值 

1.限定宽度

2.输出部分字符串

3.printf函数的返回值

四:scanf函数 

1.注意

2.scanf函数返回值

应用

五:小tips


接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 

前言

C语言的一些常见的知识容易混淆,不知道具体使用细节,导致做题被坑,接下来我们就将介绍这些容易出错的知识

一:转义字符

1.转义字符顾名思义就是转换原来意思的字符

2.常见的转义字符

1.特殊\b

对于退格键\b需要注意的是如果\b之后还有字符的话 ,\b之后的第一个字符会覆盖\b处前一个字符,如:

 

2. 特殊\ddd和\xdd

\ddd 如:\130表示把130这个八进制数字转换为10进制后的值88,作为ASCII码值的字符,转换过来的十进制ASCII码值范围在0~127以内

\xdd 如:\x30表示把30这个十六进制数字转换为10进制后的值48,作为ASCII码值的字符,转换过来的十进制ASCII码值范围在0~127以内

 3.转义字符常错点----计算字符串长度

对于这种题就得熟知常见的转义字符。结果为

注意 :
如果出现\890,\921这些的不是属于\ddd类型的,,不是一个字符,ddd表示1~3个八进制数字

二:sizeof操作符 

1.含义:

1.sizeof 是⼀个关键字,也是操作符, 专⻔是⽤来计算sizeof的操作符数的类型⻓度的 ,单位是字
节。

2.使用时注意的几点

1.sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。
2.sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出⼤⼩。
3.sizeof 的计算结果是 size_t 类型的。
sizeof(long)>=sizeof(int)

可以看出sizeof内部的运算是不进行的 ,只关注数据类型

4。 sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给
系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是
unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long
对应的 printf() 占位符分别是 %u %lu %llu 。这样不利于程序的可移植性。
C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返
回值类型。对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是
unsigned long long 。
5.当sizeof操作符的返回值与int类型的值比较是,会发生类型转换,int转换为unsigned int,如果转换前int 定义变量的值负数,就会转换为非常大的正数

三:printf函数

1.注意点

1.printf()函数运行结束后,不会在末尾添加换行,在原来位置继续打印数据,如需换行需手动添加换行符

2.常见占位符

3.限定宽度,输出部分字符串,函数返回值 

1.限定宽度

从这个例子看出,

%5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。大于等于5位的话正常输出
输出的值默认是右对⻬,即输出内容前⾯会有空格;如果希望改成左对⻬,在输出内容后⾯添加空
格,可以在占位符的 % 的后⾯插⼊⼀个 - 号即%-5d。

 对于浮点数的限定宽度

对于浮点数默认小数点后打印六位,宽度为9的话,1.200000总共是8位(小数点也算一位),再前补一空格,如限定位数的话,也依然遵循此规则

2.输出部分字符串

占位符 %.5s 表⽰只输出字符串“hello world”的前5个字符,即“hello”。 

3.printf函数的返回值

从官方文档查询可知,printf函数的返回值是正确读取字符的个数,读取出现错误的话,将调ferror函数

 

我们对这个程序进行分析得

 

四:scanf函数 

1.注意

scanf() 处理数值占位符时,会⾃动过滤空⽩字符,包括空格、制表符、换⾏符等。
scanf() 处理⽤⼾输⼊的原理是,⽤⼾的输⼊先放⼊缓存,等到按下回⻋键后,按照占位符对缓存
进⾏解读。
scanf函数不能处理在输入字符串中有空格的,有空格的应该用gets函数来读取
scanf() 读取⽤⼾输⼊时, %d 占位符会忽略起⾸的空格
%c 不忽略空⽩字符,总是返
回当前第⼀个字符,⽆论该字符是否为空格
如果要强制跳过字符前的空⽩字符,可以写成 scanf(" %c", &ch) ,即 %c 前加上⼀个空格,表
⽰跳过零个或多个空⽩字符
占位符 %s ,它其实不能简单地等同于字符串。它的规则是,从当前第⼀个⾮空⽩
字符开始读起,直到遇到空⽩字符(即空格、换⾏符、制表符等)为⽌。

2.scanf函数返回值

 

scanf() 的返回值是⼀个整数,表⽰成功读取的变量个数。
如果没有读取任何项,或者匹配失败,则返回 0 。如果在成功读取任何数据之前,发⽣了读取错误或
者遇到读取到⽂件结尾,则返回常量 EOF。
应用

用于在OJ中连续输入数据,完成多组输入,如:

可以用上面两种中的随便一种

如要停止继续输入可以输三次ctrl+z使读取到文件末尾 

五:小tips

我们经常会遇到这样的问题,在输入测试用例的时候,需要1,2,3这样输入,而有时就会1 2 3这样输入导致错误,这里提供一个小技巧可以忽略数据间的规定字符---->赋值忽略符

只要把 * 加在任何占位符的百分号后⾯,该占位符就不会返回值,解析后将被丢弃。
如:int a=0,b=0,c=0;
scanf(“%d%*c%d%*c%d”,&a,&b,&c)

相关文章:

C之易错注意点转义字符,sizeof,scanf,printf

目录 前言 一:转义字符 1.转义字符顾名思义就是转换原来意思的字符 2.常见的转义字符 1.特殊\b 2. 特殊\ddd和\xdd 3.转义字符常错点----计算字符串长度 注意 : 如果出现\890,\921这些的不是属于\ddd类型的,,不是一个字符…...

等级保护测评无补偿因素的高风险安全问题判例(共23项需整改)

层面 控制点 要求项 安全问题 适用范围 充分条件 整改建议简要 安全物理环境 基础设施位置 应保证云计算基础设施位于中国境内 1.云计算基础设施物理位置不当 二级及以上 相关基础设施不在中国境内 云平台相关基础设施在中国境内部署 安全通信网络 网络架构 应…...

JavaScript笔记 09

目录 01 DOM操作事件的体验 02 获取元素对象的五种方式 03 事件中this指向问题 04循环绑定事件 05 DOM节点对象的常用操作 06 点亮盒子的案例 07 节点访问关系 08 设置和获取节点内容的属性 09 以上内容的小总结 01 DOM操作事件的体验 js本身是受事件驱动的脚本语言 什…...

操作教程|在MeterSphere中通过SSH登录服务器的两种方法

MeterSphere开源持续测试平台拥有非常强大的插件集成机制,用户可以通过插件实现平台能力的拓展,借助插件或脚本实现多种功能。在测试过程中,测试人员有时需要通过SSH协议登录至服务器,以获取某些配置文件和日志文件,或…...

Swashbuckle.AspNetCore介绍

使用 ASP.NET Core 构建的 API 的 Swagger 工具。直接从您的路由、控制器和模型生成精美的 API 文档,包括用于探索和测试操作的 UI。 除了 Swagger 2.0 和 OpenAPI 3.0 生成器外,Swashbuckle 还提供了由生成的 Swagger JSON 提供支持的令人敬畏的 swagg…...

【Spring】通过Spring收集自定义注解标识的方法

文章目录 前言1. 声明注解2. 使用 Spring 的工厂拓展3. 收集策略4. 完整的代码后记 前言 需求: 用key找到对应的方法实现。使用注解的形式增量开发。 MyComponent public class Sample1 {MyMethod(key "key1")public String test2() {return "She…...

基于深度学习的图书管理推荐系统(python版)

基于深度学习的图书管理推荐系统 1、效果图 1/1 [] - 0s 270ms/step [13 11 4 19 16 18 8 6 9 0] [0.1780757 0.17474999 0.17390694 0.17207369 0.17157653 0.168248440.1668652 0.16665359 0.16656876 0.16519257] keras_recommended_book_ids深度学习推荐列表 [9137…...

MATLAB 点云随机渲染赋色(51)

MATLAB 点云随机渲染赋色(51) 一、算法介绍二、算法实现1.代码2.效果总结一、算法介绍 为点云中的每个点随机赋予一种颜色,步骤和效果如图: 1、读取点云 (ply格式) 2、随机为每个点的RGB颜色字段赋值 3、保存结果 (ply格式) 二、算法实现 1.代码 代码如下(示例):…...

通过一篇文章让你完全掌握VS和电脑常用快捷键的使用方法

VS常用快捷键 前言一、 VS常用快捷键常用VS运行调试程序快捷键常用VS编辑程序快捷键 二、常用windows系统操作快捷键 前言 VS(Visual Studio)是一款强大的开发工具,提供了许多常用快捷键,以提高开发效率。这些快捷键包括文件操作…...

ChatGPT指引:借助ChatGPT撰写学术论文的技巧

ChatGPT无限次数:点击直达 ChatGPT指引:借助ChatGPT撰写学术论文的技巧 在当今信息技术高度发达的时代,人工智能技术的不断发展为学术研究者提供了更多的便利和可能。其中,自然语言处理技术中的ChatGPT无疑是一种强大的工具,它能…...

魔改一个过游戏保护的CE

csdn审核不通过 网易云课堂有配套的免费视频 int0x3 - 主页 文章都传到github了 Notes/外挂/魔改CE at master MrXiao7/Notes GitHub 为什么要编译自己的CE 在游戏逆向的过程中,很多游戏有保护,我们运行原版CE的时候会被检测到 比如我们开着CE运…...

rust嵌入式开发之await

嵌入式经常有类似通过串口发送指令然后等待响应再做出进一步反应的需求。比如,通过串口以AT命令来操作蓝牙模块执行扫描、连接,需要根据实际情况进行操作,复杂的可能需要执行7、8条指令才能完成连接。 对于这样的需求,如果用异步…...

UE4_碰撞_碰撞蓝图节点——Line Trace For Objects(对象的线条检测)

一、Line Trace For Objects(对象的线条检测):沿给定线条执行碰撞检测并返回遭遇的首个命中,这只会找到由Object types指定类型的对象。注意他与Line Trace By Channel(由通道检测线条)的区别,一个通过Obje…...

抽象类和接口的简单认识

目录 一、抽象类 1.什么是抽象类 2.抽象类的注意事项 3.抽象类与普通类的对比 二、接口 1.接口的简单使用 2.接口的特性 3.接口的使用案例 4.接口和抽象类的异同 一、抽象类 所谓抽象类,就是更加抽象的类,也就是说,这个类不能具体描…...

python-pytorch获取FashionMNIST实际图片标签数据集

在查看pytorch官方文档的时候,在这里链接中https://pytorch.org/tutorials/beginner/basics/data_tutorial.html的Creating a Custom Dataset for your files章节,有提到要自定义数据集,需要用到实际的图片和标签。 在网上找了半天没找到&a…...

深入探秘Python生成器:揭开神秘的面纱

一、问题起源: 想象一下,您掌握了一种魔法,在代码世界里,您可以轻松呼唤出一个整数。然而,事情并不总是看起来那样简单。在Python的奇妙王国中,我遇到了一个有趣的谜题: def tst():try:print(…...

红队攻防渗透技术实战流程:红队目标信息收集之批量信息收集

红队资产信息收集 1. 自动化信息收集1.1 自动化信息收集工具1.2 自动域名转换IP工具1.3 自动企业信息查询工具1.4 APP敏感信息扫描工具1.5 自动化信息工具的使用1.5.1 资产灯塔系统(ARL)1.5.1.1 docker环境安装1.2.2.9.1 水泽-信息收集自动化工具1. 自动化信息收集 1.1 自动化…...

【vue3学习笔记(二)】(第141-143节)初识setup;ref函数_处理基本类型;ref函数_处理对象类型

尚硅谷Vue2.0Vue3.0全套教程丨vuejs从入门到精通 本篇内容对应课程第141-143节 课程 P141节 《初识setup》笔记 1、setup是所有组合式API“表演的舞台”,组件中所用到的所有数据、方法、监视数据、生命周期钩子等都需要配置在setup中。 2、setup的两种返回值&…...

若依框架学习使用

若依官网项目拉取下来介绍 | RuoYi 项目运行: 1.idea安装,可以运行前后端 编辑器idea、jdk环境安装、数据库mysql、navicat工具、redis(redis-server启动)安装 2.navicat数据库连接, 创建数据库ry-vue并导入数据脚本ry_2021xxxx.sql,qua…...

蓝桥杯_数学模板

1.试除法判定质数 #include <iostream> using namespace std;bool is_zs(int x) {if(x<2) return false;for(int i2;i<x/i;i)if(x%i0)return false;return true; }int main() {int n; cin>>n;while(n--){int x; cin>>x;if(is_zs(x)) cout<<&quo…...

稀碎从零算法笔记Day31-LeetCode:接雨水

半月一去&#xff0c;望舒一轮&#xff0c;明天开始攻坚哈德题了 前言&#xff1a;非常经典的一道笔试题&#xff0c;看了保证血赚&#xff08;今天银泰星笔试第四题就是这个&#xff09; 题型&#xff1a;dp、模拟、双指针…… 链接&#xff1a;42. 接雨水 - 力扣&#xff…...

微前端的使用和注意事项 - qiankun

一、为什么使用微前端 微前端架构旨在解决单体应用在一个相对长的时间跨度下&#xff0c;由于参与的人员、团队的增多、变迁&#xff0c;从一个普通应用演变成一个巨石应用(Frontend Monolith)后&#xff0c;随之而来的应用不可维护的问题。微前端的核心目标是将巨石应用拆解成…...

uniapp微信小程序消息订阅详解

一、微信公众平台申请订阅模板 注意&#xff1a;订阅信息 这个事件 是 当用户 点击的时候触发 或者 是 支付成功后触发&#xff0c; 用户勾选 “总是保持以上选择&#xff0c;不再询问” 之后或长期订阅&#xff0c;下次订阅调用 wx.requestSubscribeMessage 不会弹窗&#xf…...

git 查看文件夹结构树

在Git中&#xff0c;没有直接的命令可以像文件系统那样展示一个可视化的文件结构树。但是&#xff0c;你可以使用一些外部工具或命令来达到这个目的。 以下是一些方法&#xff0c;你可以使用它们来查看Git仓库的文件结构树&#xff1a; 使用tree命令&#xff08;如果你的系统已…...

设计模式一详解

一、观察者模式 当一个对象状态发生改变时&#xff0c;依赖它的对象全部会收到通知&#xff0c;并自动更新 场景&#xff1a;一个事件发生后&#xff0c;要执行一连串更新操作。传统的编程方式&#xff0c;就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增多之后&#x…...

python 进程、线程、协程基本使用

1、进程、线程以及协程【1】进程概念【2】线程的概念线程的生命周期进程与线程的区别 【3】协程(Coroutines) 2、多线程实现【1】threading模块【2】互斥锁【3】线程池【4】线程应用 3、多进程实现4、协程实现【1】yield与协程【2】asyncio模块【3】3.8版本【4】aiohttp 1. 并发…...

SQLite3进行数据库各项常用操作

目录 前言1、SQLite介绍2、通过SQLite创建一个数据库文件3、往数据库文件中插入数据4、数据库文件信息查询5、修改数据库中的内容6、删除数据库中的内容 前言 本文是通过轻量化数据库管理工具SQLite进行的基础操作和一些功能实现。 1、SQLite介绍 SQLite是一个广泛使用的嵌入…...

Debian GNU/Linux 安装docker与docker compose

安装 Docker 更新包列表 sudo apt update 安装必要的软件包&#xff0c;以便让 APT 可以通过 HTTPS 使用存储库&#xff1a; sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 添加 Docker 的官方 GPG 密钥&#xff1a; cu…...

图片标注编辑平台搭建系列教程(2)——fabric.js简介

文章目录 综述数据管理图形渲染图形编辑事件监听预告 综述 fabric提供了二维图形编辑需要的所有基础能力&#xff0c;包括&#xff1a;数据管理、图形渲染、图形编辑和事件监听。其中&#xff0c;图形编辑可以通过事件监听和图形渲染来实现&#xff0c;所以可以弃用。数据管理…...

Debian linux版本下运行的openmediavault网盘 千兆网卡升级万兆

一、适用场景 1、使用vmware ESXi虚拟化平台运行多种不同应用服务器时&#xff0c;其中网盘服务器采用开源的openmediavault搭建&#xff1b; 2、将老专业服务器升级千兆网为万兆网&#xff1b; 3、需要转移的数据量大的企业或用户&#xff1b; 4、从服务器到服务器的数据转移…...

自己会网站开发如何赚钱/重庆网站seo推广公司

理解 Java 的 GC 与 幽灵引用 Java 中一共有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference (传说中的幽灵引用 呵呵), 这 4 种类型的引用与 GC 有着密切的关系, 让我们逐一来看它们的定义和使用场景 : 1. St…...

wordpress 网络验证/今天的新闻有哪些

读书-程序员的自我修养-链接、封装与库&#xff08;10&#xff1a; 第四章&#xff1a;静态链接&#xff08;3&#xff09;--C问题,ABI,静态库libc.a,printf .o,hello.c 整个编译链接过程&#xff09;1. C相关问题1.1 C的两个问题1.2 c 与 ABI1.2.1 ABI 定义1.2.2 ABI 和 API 的…...

广州疫情 高位平台/安卓优化大师2021

当用浏览器浏览网页的时候&#xff0c;当我们点击一个连接的时候&#xff0c;浏览器就会转到新的页面去。整个过程如下&#xff1a; 1&#xff09;用户在当前页面点击->2&#xff09;浏览器获取新的URL->3)浏览器转到新的URL。现在&#xff0c;假设我们有一个pdf的阅读程…...

成品网站建设价格/网站不收录怎么解决

Nginx作为当前最流行的负载均衡和反向代理服务器,它运行在linux平台,一般的.net网站,为了实现分流与负载,需要在多个应用服务器的IIS上部署,通过一些工具实现代码的同步,然后再nginx上去配置它们. 有了docker,你可以在多个linux上花个1秒钟去run它即可,不用在iis上部署了,对于d…...

中英双语网站怎么做/免费模式营销案例

provide与inject1. provide与inject用法2.使用示例3.provide与inject实现双向绑定vue 组件间的通信方式有很多种&#xff0c;所以使用时需要考虑哪种方式是最合适的。若仅仅是简单的隔代组件通信&#xff0c;我认为使用 provide与inject会更加方便。1. provide与inject用法 作…...

山东网站建设报价/正规seo需要多少钱

转载自http://www.blogjava.net/action/articles/17339.html&#xff08;他也是转载&#xff0c;感谢原作者&#xff09; Eclipse快捷键大全(转载) Ctrl1 快速修复(最经典的快捷键,就不用多说了) CtrlD: 删除当前行 CtrlAlt↓ 复制当前行到下一行(复制增加) CtrlAlt↑ 复制当前…...