C++
程序媛zcx
这个作者很懒,什么都没留下…
展开
-
BMP图片信息数据解析示例
62开始,图片是从下往上扫描,所以红色框是图片第二行的数据,黄色框是第一行的数据,最后补齐两字节。(色深为1-8 数据存的是调色板的索引,超过存的是实际颜色数据,注意调色板存的顺序是 bgr 例如取数据bgr时顺序别用反)bmp 1位 数据存的是调色板的索引值,超过8位存的是数据。对于BMP等位图来说,要求是4字节对齐,即每行字节数必须为4的整数倍,因此满足以4字节为对齐单位向下对齐,所以每行字节数为:(8Bit = 1Byte)short 占 2个字节,int 占4个字节,char 1个。原创 2022-10-20 17:57:28 · 1068 阅读 · 0 评论 -
windows _wfopen 和 linux wfopen,char 转 wchar_t
【代码】windows _wfopen 和 linux wfopen,char 转 wchar_t。原创 2022-09-02 17:42:57 · 654 阅读 · 0 评论 -
QT QDialog 弹框传值问题记录
QT QDialog 弹框传值问题原创 2022-06-13 15:54:42 · 630 阅读 · 0 评论 -
C++ string 删除第一项和最后一项
basic_string & erase(size_type pos=0, size_type n=npos);即从给定起始位置pos处开始删除, 要删除字符的长度为n, 返回值修改后的string对象引用std::string str11 = "abcdef";str11.erase(0, 1); // 删除第一项 astr11.pop_back(); // 删除最后一项 f...原创 2022-03-22 17:37:04 · 2831 阅读 · 0 评论 -
C++ QString 与 string(int) 相互转换
string 转 QStringstring str = "abc";QString qstr = QString::fromStdString(str);QString 转 stringQString qstr = "dddd"; string str = qstr.toStdString();int 转 QStringint i= 0;QString str = QString::number(i+1);原创 2022-03-22 17:32:15 · 1277 阅读 · 0 评论 -
C++ char const* 拼接
char const*url_v1 = "rtp://127.0.0.1:1234"; std::string const& cc = std::string(url_v1) + std::to_string(m_id); char const*url_v = cc.c_str();原创 2022-03-22 17:26:56 · 2713 阅读 · 0 评论 -
C++ 了解指针
int num =10; /* 实际变量的声明 */ qDebug() << "num 变量的地址==" << # qDebug() << "num 变量值 ==" << num; int *p; /* 指针变量的声明 */ qDebug() << "指针变量p存储的内存地址 ==" << p; qDebug() ...原创 2022-02-26 13:35:16 · 410 阅读 · 0 评论 -
C++ string 中查找 是否存在
string::size_type idx;idx=str.find(s); //在string str 里 查找 string s 是否存在if (idx == string::npos ){//不存在 cout << "not found\n" ;} else { //存在 cout << "found\n" ;}原创 2021-12-14 17:58:05 · 1941 阅读 · 0 评论 -
C++ char 转 int
char cc[20]="-100";int dd;dd=atoi(cc);原创 2021-12-14 17:50:42 · 3381 阅读 · 0 评论 -
C++ int 转 char
int a = 10;char *intStr = itoa(a);原创 2021-12-14 17:49:57 · 3420 阅读 · 0 评论 -
C++ char 转 string
char *intStr = 100;string str = string(intStr);原创 2021-12-14 17:49:13 · 841 阅读 · 0 评论 -
C++ int 转成 string std::to_string
int type = 100;std::string s = std::to_string(type);原创 2021-12-09 13:29:46 · 522 阅读 · 0 评论 -
C++ 判断 IP 是否在 1网段。 char string 查找 截取 比较
需求 判断 IP 是否在 1网段,思路是判断字符串里是否包含192.168.1 ,找了3个方法:char *strstr(const char *str1, const char *str2);此函数的功能为查询字符串 str2 是否是 str1 的子串,如果是,返回字符串str2在str1中出现的头一个位置的指针*char。如果不是,则返回null;substr(size_type __pos = 0, size_type __n = npos) const获得字符串s中从第0位.原创 2021-11-20 16:49:10 · 2089 阅读 · 0 评论 -
js 前端ajax发送json数据、C++ CJsonObject 接收处理数据示例
// 一条json数据结构示例:let data = { "id": 1, "param": { "cid": 1, "obj1": [ { "id": 1, "name": "一" }, { "id": 2, "name": "二" ...原创 2021-11-12 13:55:40 · 1754 阅读 · 0 评论 -
C++ qt 存放文件夹位置 可以直接访问
std::ofstream log;log.open("log.txt", std::ofstream::trunc);//清空log.close();或ifstream t(Text.json);string str((istreambuf_iterator<char>(t)),istreambuf_iterator<char>());原创 2021-10-13 16:56:35 · 124 阅读 · 0 评论 -
C++ qt中 CJsonObject 读取 .json 文件
myReadJson.h#include <stdio.h>#include <iostream>#include <vector>#include <string>#include "CJsonObject.hpp"using namespace std;using namespace neb;class MyMap{ public: int a; int b; int c; int parse.原创 2021-10-13 16:46:52 · 529 阅读 · 0 评论 -
C++ qt 使用 ifstream 读取路径中带中文的文件失败解决
windows下 前端是js 选择 文件,文件名带中文,编码utf-8。后端是C++,接收到的是乱码,导致文件打开失败,找解决办法尝试:1、QString::fromLocal8Bit()Qt5 加载中文路径以及中文文本显示乱码问题 - 码农教程2、使用_TEXT()宏定义将字符串常量指定为TCHAR*类型3、locale::global(locale(""));//将全局区域设为操作系统默认区域4、setlocale(LC_ALL,"Chinese-simplif.原创 2021-09-17 16:14:18 · 4479 阅读 · 1 评论 -
C++ 对象数组 [ ] 或 vector 传参方式
1、接收到的对象数组,需要传参MyScreen subScreenlist[33*12]int Mode::calcMode(MyScreen subScreenlist[], int len) { //...} { CJsonObject screenlist; Mode mode; cmd["param"].Get("screenlist", screenlist); int len = screenlist.GetArrayS...原创 2021-09-02 11:28:43 · 766 阅读 · 0 评论 -
获取二进制数中bit位的值示例(移位、与操作)
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”一个字节通常包括8个位即1Byte=8Bit。我们可以将这8位从左到右看作是从7到0。在字节中,位7称为高位,为0称为低位操作符:1、and 操作,操作符“&”定义:称为按位与运算符。它对整型参数的每一个二进制位进行布尔与操作,即两个对应的二进制位同时为1时,才等于1。2、操作符“|”定义:称为按位或运算符。它对整型参数的每一个二进制位进行原创 2021-08-19 16:33:41 · 9739 阅读 · 0 评论 -
Qt中使用fopen打开文件(路径有中文时)失败解决
#include<QTextCodec> //引入string bmpName = "C:\\Users\\Administrator\\Desktop\\testsubtitle中文.bmp";QTextCodec *code = QTextCodec::codecForName("GB2312");std::string name = code->fromUnicode(bmpName.c_str()).data();FILE *fp = fopen(name.c_st.原创 2021-07-27 14:14:23 · 6098 阅读 · 0 评论 -
C++ sprintf 格式化 日期时间 页面访问json数据
vector<int> list = {2021, 6, 16, 17, 5, 40};char buf[100];sprintf(buf, "%d-%02d-%02d %02d:%02d:%02d", list[0], list[1], list[2], list[3], list[4], list[5]);CJsonObject je;je.Add("timeStr", buf);je.AddEmptySubArray("time");for(int i = 0;i<...原创 2021-06-16 17:27:33 · 788 阅读 · 0 评论 -
C++ 以.为分隔符拆分字符串 转换为vector数组
vector<int> equipmentManager::tranArraylistByString(string str) { vector<int> result; // string->char * char *s_input = (char *)str.c_str(); const char * split = "."; // 以.为分隔符拆分字符串 char *p = strtok(s_input, split...原创 2021-06-11 15:15:29 · 854 阅读 · 0 评论 -
C++ 使用正则表达式,验证是否为IP地址、物理地址
#include <regex>//使用正则表达式bool equipmentManager::isIP(string ip){ regex pattern("((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"); smatch res; if(regex_match(ip, res, pattern)){ return...原创 2021-06-10 16:31:01 · 2031 阅读 · 0 评论 -
c++ for循环对象数组并添加到新数组中vector 和 []
CJsonObject data;//数据vector<MyScreen> screenlists1;for(unsigned int i=0;i< data.GetArraySize();i++){ MyScreen ms; ms.parseJSON(data[i]); screenlists1.push_back(ms);}MyScreen scarr[20*12];for (int i=0;i<20*12;i++){ MyScr...原创 2021-05-25 17:50:28 · 1118 阅读 · 0 评论 -
C++ CJsonObject 使用时记录
json数据:{ "api":"setDatas", "apiVer" : 0, "packSn" : 0, "operate" : "command", "option" : ["none"], "param" : { "id": 1, "datas": [1, 2, 3, 4, 5, 6] }, "endFlg":"api"}接收函数:CMDFN(setDatas){ int id; int datas[256]; cmd["par..原创 2021-04-16 17:12:28 · 241 阅读 · 0 评论 -
C++ 对象数组 根据 属性值 去重代码
初学C++1、datas 是一个对象数组vector<VidPort>,想根据属性 id 去重,在 .cpp 文件里 代码如下:vector<VidPort> DeviceConf::unique(vector<VidPort> list){ //去掉重复选取的数据 for (int i = 0; i < list.size(); i++) { for (int j =i+1; j < list.size();) {.原创 2021-04-16 16:44:00 · 344 阅读 · 0 评论 -
C++ 对象数组根据 属性值大小(例如id)排序
初学C++datas 是一个对象数组vector<person>,想根据属性 id 从小到大排序,在 .cpp 文件里 代码如下:#include <string>#include <stdio.h>#include <math.h>#include <algorithm>#include <iostream>using namespace std;groupController::groupControlle.原创 2021-04-16 16:32:08 · 1103 阅读 · 0 评论 -
C++中,求整型int 数组的长度和实际长度,vector数组长度
初学c++,定义了一个int arr[5]; 我想求arr 的实际长度是多少,没找到方法,自己写了一个方法,不知道是否可行。 int arr[5]; arr[1] = 1; arr[2] = 2; arr[3] = 3; // 模拟数据,int数组arr 实际长度 为 3 int len = end(arr)-begin(arr); int len2 = sizeof(arr) / sizeof(arr[0]); cout <&.原创 2021-04-06 13:34:45 · 5193 阅读 · 0 评论 -
C++ strcat() 方法使用(for循环里循环数组或字符串进行拼接)
strcat(s1, s2);连接字符串 s2 到字符串 s1 的末尾。连接字符串也可以用+号,例如: string str1 = "Hello"; string str2 = "World"; string str3 = str1 + " " + str2; cout << "str3--------------- " << str3 << endl; // str3--------------- Hello W..原创 2021-04-02 17:29:41 · 3072 阅读 · 0 评论 -
C++ sprintf 方法使用示例( for循环数组,字符串拼接、删除、格式化等)
sprintf()C 库函数int sprintf(char *str, const char *format, ...)发送格式化输出到str所指向的字符串。参数str-- 这是指向一个字符数组的指针,该数组存储了 C 字符串。 format-- 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。示例一: char str[128]; vector...原创 2021-04-02 17:12:54 · 4214 阅读 · 0 评论 -
C++ 创建 int / vector 数组的方法
一、int 数组方法1:大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。int arr[5] = {1, 2, 3};方法2: int n[ 10 ]; // n 是一个包含 10 个整数的数组 // 初始化数组元素 for ( int i = 0; i < 10; i++ ) { n[ i ] = i + 100; // 设置元原创 2021-04-02 16:07:11 · 4390 阅读 · 0 评论 -
C++ string字符串转成char* 类型 strcpy
string str = "string";const char* str2 = str.c_str(); // 声明常量,不能修改cout << "----" << str2 << "----" << endl;原创 2021-04-02 14:42:12 · 871 阅读 · 0 评论 -
C++ for循环字符串(string、char)代码
1、string 类型 string name = "string"; for(int i = 0;i< name.size();i++) { cout << name[i] << endl; }2、char 类型 char str[] = "string"; int charSize = strlen(str); cout << " charSize length=========" &.原创 2021-04-02 11:02:41 · 4093 阅读 · 0 评论 -
C++ 获取字符串(string、char)长度的方法
1、string string name = "string"; int size = name.size(); cout << " str length=========" << size << endl;2、char引入头文件 #include <string.h> const char* str = name.c_str(); int charSize = strlen(str); ...原创 2021-04-02 10:40:07 · 6882 阅读 · 0 评论