C++
文章平均质量分 53
spirits_of_snail
code is changing me.
展开
-
c++ 解析zip文件,实现对流式文件pptx内容的修改
【代码】c++ 解析zip文件,实现对流式文件pptx内容的修改。原创 2023-12-08 11:57:33 · 606 阅读 · 0 评论 -
c/c++实现crc码计算和校验
crc校验原创 2023-03-09 15:10:38 · 3116 阅读 · 2 评论 -
局部变量,全局变量以及关键字static,extern
局部变量,全局变量以及关键字static,extern变量通常是在函数的开头进行定义,但不同位置定义,其有效范围是否不同,该疑问也称为变量的作用域,根据作用域的不同,分为全局变量和局部变量局部变量定义变量时,若位于函数的开头(函数内部定义)或者函数内部的复合语句(程序块)内(for,if, while语句)定义,则这些变量称为局部变量,在函数内部定义的变量其作用域为定义的位置到函数结尾若在函数复合语句内定义,则作用域为复合语句内部(开头到结尾)全局变量一个源文原创 2021-07-01 00:36:55 · 3009 阅读 · 0 评论 -
python调用c++的动态库,实现结构体类型、数组之间的参数传递
python的ctypes库学习笔记----调用DLL和sopython调用C++编译生成的动态链接库,包括DLL或者.so,需要用到ctypes库的方法ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调用函数。解决调用过程中出现OSError: exception: access violation reading 0x0000000000000030问题,报错原因是ctypes库并不支持python中参数类型windows 生成DLL这里原创 2020-11-23 18:38:55 · 4769 阅读 · 1 评论 -
pip install numba==0.48.0 报错FileNotFoundError: [Errno 2] No such file or directory: ‘llvm-config‘
报错原因和解决方案numba的依赖库llvmlite-0.31.0需要llvm编译器,因此需要安装llvm对于官网已经发布的编译好的库,直接下载用即可,下载链接https://releases.llvm.org/若没有对应的平台,只能使用源码编译,源码编译需要下载对于版本的源码,这里版本使用的是llvm-8.0.0,https://releases.llvm.org/8.0.0/llvm-8.0.0.src.tar.xz安装步骤:tar -xvf llvm-8.0.0.src.tar.xz -原创 2022-05-03 19:32:50 · 4116 阅读 · 1 评论 -
opencv学习笔记之获取摄像头的视频帧
介绍获取PC连接的摄像头下的视频流,个性化设置拍摄时的参数和按键等用于拍摄获取特定场景下的视频windows代码如下:#include <iostream>#include <time.h>#include <opencv2/opencv.hpp>#ifdef _WIN32#include <Windows.h>#include <io.h>#include <direct.h>#else#in原创 2022-04-25 22:27:00 · 2897 阅读 · 0 评论 -
opencv学习笔记之视频读取处理方法
c++ opencv读取视频帧, 保存的路径;原创 2019-04-18 21:58:46 · 3392 阅读 · 0 评论 -
c++实现Mat和字节流、Base64的互转
base64编码和解码#include <stdlib.h>#include <string.h>#include <iostream>#include原创 2021-08-05 15:46:48 · 3262 阅读 · 0 评论 -
c++ 返回字符串数组次数出现最多的字符串
读取中文路径的显示读取中文路径并显示,常见的编码形式除了Unicode还有UTF-8、gbk, gb2312等。不同的编码形式之间并不兼容,需要转换。而encoding指的是当前文件的编码形式,对于读取的txt编码形式是什么,设置什么即可file_in = "input.txt"with open(file_in,“r”,encoding="utf-8") as f: for line in f.readlines(): tmp = line.strip().split(",")原创 2021-11-29 17:13:46 · 2335 阅读 · 0 评论 -
C++时间戳与时间日期格式互相转换
利用localtime_s函数格式化输出当地日期与时间localtime、localtime_s、localtime_r都是用于获取系统时间;localtime_r用于Linux平台下获取系统时间,localtime_s用于Windows平台获取系统时间显示当地日期与时间主要通过localtime()函数来实现,该函数的原型在time.h头文件中,其语法格式如下:struct tm *localtime(const time_t *timep)该函数的作用是把timep所指的时间(如函数t原创 2021-09-30 18:58:54 · 11146 阅读 · 0 评论 -
CMYK convert RGB
libjpeg 处理CMYK 格式数据以及iCC配置文件ICC文件,又叫ICC Color Profile,是指设备管理色彩特性的文件,各种具有色彩管理功能的软件(如photoshop)可以依据ICC文件的配置对不同设备的颜色特点进行准确地显示,转换和改变。同时,也能让颜色在不同设备上的传递过程时的失真最小 。ICC文件是将所有和设备有关的颜色数据(RGB和CMYK数据),一一对应到和设备无关的Lab颜色模式上。从而通过Lab模式做为传递中介,保持所有颜色外观的一致,icc文件用来描述设备的颜色特性,原创 2021-08-31 16:35:35 · 1208 阅读 · 0 评论 -
VS2015安装失败KB3022398 KB3165756
Visual Studio 2015 Update 3 KB3022398当安装VS2015时,手动勾选需要的包,可能会导致整个VS安装失败,此时可能会报以下错误通过自动修复也无法解决,微软给出的解决办法是https://visualstudio.microsoft.com/zh-hans/vs/support/vs2015/this-update-requires-visual-studio-2015-update-3-to-be-installed/我收到错误“此更新要求安装原创 2021-07-02 09:55:32 · 13103 阅读 · 3 评论 -
VS封装c与c++动态库,调用接口报错LINK无法解析的外部符号
未找到的函数接口定义将VS工程项目属性添加库文件以及库文件所在的头文件路径,通常情况下会解决。上述方法若依然解决不了,则考虑接口头文件的是否指定C编译关键字"extern C"由于源码中含有xx.c文件,且jni封装主要是针对C,而不是C++,因此编译器会报错,找不到接口函数的符号。修改接口头文件#ifndef SOURCE_TOOLS_H#define SOURCE_TOOLS_H#define _WIN_EXPORT_TEST#ifdef _WIN32原创 2021-05-13 13:36:32 · 515 阅读 · 0 评论 -
VS编译设置正确,但无法生成xxx.lib解决办法
windows生成动态库问题对于大多数生成动态库dll的工程项目而言。要想生成xxx.lib 文件,可以通过将头文件添加__dllexport完成;如下#define _WIN_EXPORT#ifdef _WIN32#ifdef _WIN_EXPORT#define DLL_EXPORT __declspec(dllexport)#else #define DLL_EXPORT __declspec(dllimport) #endif #endif DLL_EXPORT原创 2021-03-15 17:07:53 · 4630 阅读 · 2 评论 -
c/c++实现二进制/十进制/十六进制互转
c实现二进制与十进制互转原创 2021-01-18 19:10:14 · 2751 阅读 · 0 评论 -
cmake学习笔记之跨平台编译
CMakeLists模板适用于c/c++中、小项目的编译环境适用于跨平台编译,支持windows Debug或Release版本模板如下:cmake_minimum_required(VERSION 3.1)project(you_project_name)set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}原创 2021-01-06 10:15:09 · 1472 阅读 · 0 评论 -
CMake error: error in configuration process, project files may be invalid 解决办法
环境 window10 + vs2015 + cmake3.10版本以上弹框报错 : CMake error: error in configuration process, project files may be invalid本质原因是 The Windows SDK version 8.1 was not found解决办法,安装Windows SDK version 8.1参考解决步骤: 重新将vs2015进行修改,安装Windows SDK 8.1地址:http..原创 2020-12-24 18:58:38 · 9226 阅读 · 2 评论 -
C++求两个数的最大公约数
思路一:给定a,b两个数,将较小的数赋值给c,令c=b(不妨设a>b),将a和b对c做求余运算,从c开始依次减1向下遍历,直到两者的余数都为0则返回c,否则继续循环遍历。代码如下:#include<iostream.h>int gcd(int a,int b){ int c; c=(a>b)?b:a; while(a%c!=0||b%c!=0) { c...原创 2017-04-13 20:25:19 · 35911 阅读 · 5 评论 -
c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数
include //不要用iostream.h ,会出现好多问题#include // io 流控制头文件, 主要是一些操纵用法如setw(int n),setprecision(int n) ,setbase(int n),setfill(char c)的. ▲setw(n)用法: 通俗地讲就是预设宽度 如转载 2017-09-15 11:41:17 · 943 阅读 · 0 评论 -
字符串匹配:求给定字符串的next数组以及KMP算法
一. 理解字符串的next数组值next数组值的概念涉及到字符串匹配的问题,比较抽象,先介绍一些预备知识:1. 主串和模式串 例如我们想知道一个字符串是否包含另一个字符串时,如串S="bbc abcdab abcdabcdabde"中是否包含串s="abcdab",那么S称为主串,s称为模式串。解决这个字符串匹配问题的算法就是KMP算法。KMP算法与next数组关系密切。有...原创 2017-03-26 16:25:15 · 8905 阅读 · 4 评论 -
c++计算排列组合数C(m,r),解决走方格问题
计算组合数C(m,r)=m!/(r!*(m-r)),其中m,r均为正整数,且m>r。代码如下:#include<iostream>using namespace std;long factorial(long number){ if(number<=1) return 1; else return number*factorial(number...原创 2017-04-14 11:23:10 · 33220 阅读 · 5 评论 -
C++ 多态的实现及原理——面试的FAQ
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数 1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚...转载 2017-11-03 11:47:36 · 625 阅读 · 0 评论 -
C++实现给定字符的字符串分割
c++字符分割和读写文件原创 2018-12-05 10:13:44 · 312 阅读 · 1 评论 -
opencv学习笔记之JPEG质量压缩和二进制文件处理
代码实现强调一下:主要是用到了cv::imencode和cv::imdecode两个函数,具体的用法与cv::imread和cv::imwrite类似。可参考opencv的相应API文档帮助理解:[Image file reading and writing]使用函数cv2.imwrite(file,img,num)保存一个图像。第一个参数是要保存的文件名,第二个参数是要保存的图像。可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于pn原创 2018-12-14 09:49:59 · 15301 阅读 · 1 评论 -
c/c++ 编译MakeFile入门指南
Make 指南引言第一次接触make是基于linux下编译简单的c++程序,之前一直是用gcc命令行实现编译连接的。提一下make的优点:自动识别编译文件生成的时间戳,实现对最后修改的文件重新编译,而其他未修改的文件无需重新编译,加速了编译的速度。预备知识:熟悉GCC编译器的常见编译的参数;makefile简单语法makefilemakefile结构规则GNU Make 工具通...原创 2019-03-29 16:44:15 · 1438 阅读 · 0 评论 -
opencv学习笔记之Mat元素访问
CV::Mat 地址访问Mat元素访问方法如下Mat类的at方法地址访问细节可参考https://blog.csdn.net/xiaowei_cqu/article/details/19839019/*//use g++ to buildg++ read_mat.cpp -o read -std=c++11 -lopencv_core -lopencv_imgproc -l...原创 2019-06-19 18:26:35 · 2909 阅读 · 0 评论 -
C++求“四位水仙花数”
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.所以4位数的水仙花数就是将其每一位的4次方相加.看是否等于其本身. #include#includeint main(){ int m,a,b,c,d,i; for(i=1000;i<10000;i++) { a=i/1000; b=(i/100)%10; c=(i/10)%10原创 2017-04-13 21:14:26 · 4407 阅读 · 0 评论