sprintf

sscanf、sprintf、stringstream常见用法

若如初见. 提交于 2021-02-18 00:43:21
转载自: https://blog.csdn.net/jllongbell/article/details/79092891 前言:  以前没有接触过stringstream这个类的时候,常用的字符串和数字转换函数就是sscanf和sprintf函数。开始的时候就觉得这两个函数应经很叼了,但是毕竟是属于c的。c++中引入了流的概念,通过流来实现字符串和数字的转换方便多了。在这里,总结之前的,并介绍新学的。 常见格式串:     %% 印出百分比符号,不转换。   %c 整数转成对应的 ASCII 字元。   %d 整数转成十进位。   %f 倍精确度数字转成浮点数。   %o 整数转成八进位。   %s 整数转成字符串。   %x 整数转成小写十六进位。   %X 整数转成大写十六进位。   %n sscanf(str, "%d%n", &dig, &n),%n表示一共转换了多少位的字符 sprintf函数    sprintf函数原型为 int sprintf(char *str, const char *format, ...)。作用是格式化字符串,具体功能如下所示:   (1)将数字变量转换为字符串。   (2)得到整型变量的16进制和8进制字符串。   (3)连接多个字符串。 int main(){ char str[ 256 ] = { 0 }; int data =

手撸golang 行为型设计模式 解释器模式

谁说胖子不能爱 提交于 2021-02-14 00:16:54
手撸golang 行为型设计模式 解释器模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 解释器模式 解释器模式(Interpreter Pattern)指给定一门语言, 定义它的文法的一种表示, 并定义一个解释器 ,该解释器使用该表示来解释语言中的句子。 解释器模式是一种按照规定的文法(语法)进行解析的模式, 属于行为型设计模式。 (摘自 谭勇德 <<设计模式就该这样学>>) 场景 某业务系统, 随数据量增加, 数据库访问压力日渐增大 业务team希望平台team提供透明的缓存解决方案以缓解数据库压力 平台team经反复讨论研究, 决定采用 解释器模式 , 直接拦截/解析/执行SQL(子集)语句, 提供透明化缓存服务 SQL(子集)文法 SQL: select + FIELD_LIST + from TABLE_NAME + (where BOOL_EXPRESSION)? FIELD_LIST: * | COLUMN_LIST COLUMN_LIST: COLUMN_NAME + (,COLUMN_NAME)* COLUMN_NAME: IDENTIFIER IDENTIFIER: [_a-zA-Z] + [_a-zA-Z0-9]* TABLE_NAME: IDENTIFIER BOOL_EXPRESSION:

tp5的 LayUI分页样式实现

落爺英雄遲暮 提交于 2021-02-12 08:28:49
1.先配置你的分页参数: //分页配置 'paginate' => [ 'type' => 'Layui' , 'var_page' => 'page' , 'list_rows' => 15 , 'newstyle' => true , ], 2. 下载文件(Layui.php),并复制到 \thinkphp\library\think\paginator\driver 3. 模板文件里正常使用分页即可 PHP: // 获取分页显示 $page = $inquiry_list->render(); // 模板变量赋值 $this->assign('list', $inquiry_list); $this->assign('page', $page); HTML: <div class="layui-box layui-laypage layui-laypage-default">{$page}</div>  分页源码:Layui.php <?php namespace think\paginator\driver; use think\Paginator; class Layui extends Paginator { /** * 上一页按钮 * @param string $text * @return string */ protected function

[GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

痴心易碎 提交于 2021-02-02 14:53:12
作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进步。前文介绍了什么是GO语言及为什么我要学习Golang;这篇文章将介绍Go的编译运行、语法规范、注释转义及API标准库知识。 这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《GO高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合网络安全进行GO语言实战深入,加油~ 这些年我学过各种编程语言,从最早的C语言到C++,再到C#、PHP、JAVA,再到IOS开发、Python,到最新的GO语言,学得是真的杂。有时候觉得编程语言恰恰是最简单的,而通过一门编程语言能够解决实际问题或深入底层才是其价值所在,并且当我们学好一门编程语言后,其他编程语言都非常类似,殊途同归,学起来也很迅速。 源码下载地址: https://github.com/eastmountyxz/Go-learning 前文参考: [GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及 [GO语言基础] 二.编译运行、语法规范、注释转义及API标准库知识普及 [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题 文章目录 一.变量 1.什么是变量 2.变量的声明 3

嵌入式编码规范,收藏细读!

夙愿已清 提交于 2021-01-28 22:11:00
作为程序开发者,避免不了阅读别人代码,那么就会涉及到到一门语言的编程规范。规范虽然不是语言本身的硬性要求,但是已经是每一个语言使用者约定俗成的一个规范。 按照编程规范编写的代码,至少在代码阅读时,给人一种愉悦的心情,特别是强迫症患者。另一方面,统一的编程风格,可以减少编写错误,利于后期维护。 因为最近又开始进行纯C语言的开发,并且是基于SDK的开发,所以添加的每一行代码都应该与原来风格保持一致,不能因为一颗老鼠屎坏了一锅汤。一个良好的编程规范也可以看出编程人员的细心程度与代码质量。 之前待过的两家公司,也都有各自总结的编程规范,但都不约而同的一致,适用本公司的软件开发。这几天有幸可以参阅华为技术有限公司的C语言编程规范,相比之下,写的更加详细。 至少接触到了,在这个编程规范中体现了,并且还扩充了很多,我觉得有必要归纳总结,一遍日后查阅。先是学习规范,然后再积累规范,最后才是依规范编写。 1、清晰第一 清晰性是易于维护、易于重构的程序必需具备的特征。代码首先是给人读的,好的代码应当可以像文章一样发声朗诵出来。 2.、简洁为美 简洁就是易于理解并且易于实现。代码越长越难以看懂,也就越容易在修改时引入错误。写的代码越多,意味着出错的地方越多,也就意味着代码的可靠性越低。 因此,我们提倡大家通过编写简洁明了的代码来提升代码可靠性。废弃的代码(没有被调用的函数和全局变量)要及时清除

STM32CubeMX+ADC数据采集

佐手、 提交于 2021-01-13 05:39:23
设计对电池电压进行检测的应用程序 STM32理解: https://blog.csdn.net/u010893262/article/details/68942710 一、ADC(Analog-to-Digital Converter)模数转换器 模拟信号----->数字信号 二、ADC外设的工作参数配置 二、ADC外设的工作参数配置 三、配置USART外设的工作参数 四、生成代码 在main.c文件中设置所需变量 /* USER CODE BEGIN PV */ // ADC转换值存放 uint16_t adc_value = 0 ; // 电压值 float voltage = 0.0 ; // 电压值结果显示 char voltString[ 50 ] = { 0 }; /* USER CODE END PV */ 在while循环里 while ( 1 ) { // 启动ADC转换 HAL_ADC_Start(& hadc1); // 等待转换完成,第二个参数表示超时时间,单位ms HAL_ADC_PollForConversion(&hadc1, 100 ); // 为换取ADC状态 adc_value = HAL_ADC_GetValue(& hadc1); // 采取的右对齐除以2的12次方,参考电压为3.3V voltage = ( float )adc_value

二、linux IO 编程---系统调用和POSIX标准和标准IO

青春壹個敷衍的年華 提交于 2021-01-04 08:37:01
2.1 系统调用 2.1.1 概念   所谓系统调用(system call)是指曹错系统提供给用户程序的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的特殊服务。    应用程序可以直接调用系统调用获得内核的服务 shell 可以调用系统调用 标准C库,也可以调用系统调用,获得内核服务   2.1.2 linux 进程的运行状态   当应用程序进行系统调用的时候,进程运行状态会发生变化,进程会从运行态变为内核态,当调用完成后,则从内核态变为运行态。 内核态:进程运行在内核空间 运行态:进程运行在用户空间 2.2 UNIX 标准 ISO C IEEE POSIX 在 linxu 中用户编程接口(API)遵循了在 UNIX 中最流行的应用编程界面标准——POSIX 标准。这些系统调用编程接口主要通过C库(libc)实现的。 2.3 标准IO   文件操作标准I/O库函数:   fopen、fread、fwrite、fclose、fflush、fseek、fgetc、getc、getchar、fputc、putc、putchar、fgets、gets、printf、fprintf、sprintf、scanf、fscanf、sscanf、fgetops、fsetops、ftell、rewind、freopen、setvbuf、remove、fileno

C语言sprintf与sscanf函数

↘锁芯ラ 提交于 2020-12-28 05:21:27
1、前言     我们经常涉及到数字与字符串之间的转换,例如将32位无符号整数的ip地址转换为点分十进制的ip地址字符串,或者反过来。从给定的字符串中提取相关内容,例如给定一个地址:http://www.bokeyuan.cn:2345,我们要从地址中提出协议,主机地址和端口号。之前对字符串和数字之间的关系不是很熟悉,工作中经常涉及到这个,如是好好总结一下。C语言提供了一些列的格式化输入输出函数,最基本的是面向控制台标准输出和输入的printf和scanf,其实还有面向字符串的sprint和sscanf,面向文件的流的fprintf和fscanf。今天着重总结一下sprintf和sscanf系列函数,这两个函数类似于scanf和printf ,不同点是从字符串*buffer用于输入输出。 2、sprintf函数   sprintf函数原型为 int sprintf(char *str, const char *format, ...) 。作用是格式化字符串,具体功能如下所示: (1)将数字变量转换为字符串。 (2)得到整型变量的16进制和8进制字符串。 (3)连接多个字符串。 举例如下所示: 1 char str[ 256] = { 0 }; 2 int data = 1024 ; 3 // 将data转换为字符串 4 sprintf(str, " %d " ,data); 5 /

用matlab爬取火车票信息

一个人想着一个人 提交于 2020-12-25 14:01:05
前一段时间小编 使用matlab爬取火车票信息 ,小编觉得这个爬取过程还蛮有趣的,所以和大家分享一下如何用matlab爬取火车票信息。 比如我想要获取以下这些车次的 始发站 和 终点站 信息, 大家第一反应可能会是这多简单,去12306逐个搜索不久好了么。但是当我要查询成百上千个车次的 始发站 和 终点站 信息时,我们很显然就不能手动逐个搜索了,所以这时就可以通过matlab爬取各个车次的始发站和终点站信息。小编使用爬取的网站是 http://search.huochepiao.com/ ,网站界面如下。 如果小编想要查询 G529 车次的信息, 此时的网址为 http://search.huochepiao.com/chaxun/resultc.asp?txtCheci= G529 &cc.x=0&cc.y=0 , 其实各位细心的小伙伴也许发现如果查询 G1204 车次的信息,那么查询网址会变成 http://search.huochepiao.com/chaxun/resultc.asp?txtCheci= G1204 &cc.x=0&cc.y=0 。 然后右击查看该界面源代码信息, 然后查询到显示 始发站 和 终点站 的源代码 小编想要 截取<td align="center">……</td>之间的 始发站和终点站信息,但是整个显示页面的源代码中有<td align=

2020-12-17:java和go,如何高效的拼接字符串?

≡放荡痞女 提交于 2020-12-20 11:10:54
福哥答案2020-12-17: java: stringbuilder 线程不安全。 stringbuffer 线程安全。 go: 答案来自此链接: 1.在已有字符串数组的场合,使用 strings.Join() 能有比较好的性能。 2.在一些性能要求较高的场合,尽量使用 buffer.WriteString() 以获得更好的性能。大量拼接用append方法性能最好。 3.较少字符串连接的场景下性能最好,而且代码更简短清晰,可读性更好。 4.如果需要拼接的不仅仅是字符串,还有数字之类的其他需求的话,可以考虑 fmt.Sprintf。 大量拼接效率排序:append> strings.Join() > bytes.writestring > fmt > +。 评论 来源: oschina 链接: https://my.oschina.net/u/4306257/blog/4816834