![](https://img-blog.csdnimg.cn/20190831194552983.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
C/C++、多线程、lang自制编程语言
念心科道尊
时间同腐败是一回事。意料不到的东西以意料不到的方式变化,任何人都无从知晓。
展开
-
unicode转utf8,utf8转unicode
如果想要允许中文做变量名的话,做这个前我以为要做utf8的转换,但是做的时候越想越不明白。无论在文本文件中输入的中文是utf8编码还是gbk编码的,其实都无所谓,编译的时候只要保存一段uint8_t数组(或者char数组)的内容就行了,至于内容是什么都无所谓。再者,输入的内容本身就是utf8编码的了,为什么要转成unicode?比如用记事本输入一个【苏】,然后用二进制编辑软件打开,显示EB 8B 8F,本身就已经是utf8编码的字了!!!推荐:UTF8编码表原理码农翻身:两位巨佬的一顿晚饭,...原创 2021-05-29 13:43:52 · 2935 阅读 · 1 评论 -
lang:计算器改进版本_默认函数_小数_指数
前言之前的版本只能计算单个数字之间的加、减、乘、除、取余、 乘方。这次首先对输入的字符串进行正则匹配,分割之后放入栈中。还重新设计了新的优先级,并对中缀表达式和后缀表达式的转换做了点修改。但是缺点也有,提供的默认函数,如sin\cos\tan\sqrt\log等都是只能有一个参数的函数!!!...原创 2020-01-26 14:24:28 · 332 阅读 · 0 评论 -
【C项目】看我如何避免命名冲突
工程//project.c#ifdef _MY_PROJECT_H_#include <stdio.h>#include <stdlib.h>#define MY_PROJECT_PUBLIC#define MY_PROJECT_PRIVATE static//预处理MY_PROJECT_PRIVATE char* precompile(char* _code){}//词法分析MY_PROJECT_PRIVATE char* lex(char* _co原创 2021-05-20 05:07:35 · 1109 阅读 · 3 评论 -
【C】字符串操作——完全重复子串
检查字符串是否是由完全相同的几个子串组成!#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <stdbool.h>//遍历字符串void Next(int* next, int size,const char* s);//检查是否有完全重复的字串bool HaveCompletelyRepeatString(char* s);int main(in原创 2021-12-27 02:34:09 · 724 阅读 · 0 评论 -
VisualStudio C++调试小技巧 Demllie
前言VSC不好调试于是我又用回VS了。下面分享几个调试技巧,都是面向菜鸟的SHIFT+F9选中变量后按shift+f9,就能查看变量的内容,不能查看指针自身的地址!SHIFT+F9 , + &在上面的基础上,在窗口里,前面加上&就能得到指针自身的地址!添加监视调试时只关注自己想要关注的变量!选中后右击添加监视!—— 全局变量在主函数里无法查看,无论使用 shift+f9 还是添加监视都不行,必须进入其他的函数才能查看。...原创 2021-01-14 07:49:29 · 278 阅读 · 0 评论 -
C语言中的封装、多态、继承--------打破你对面向对象的观念-------关于结构体、对象指针、函数指针
前言面向对象三大特性:封装、继承、多态。要想实现面向对象,先把这三个东西实现再说。之后再想如何让它变得简单好用。原创 2019-04-11 23:32:20 · 444 阅读 · 0 评论 -
C++11多线程期望
前言这不是最后一个内容,但也相当困难。原创 2019-03-22 11:05:52 · 478 阅读 · 0 评论 -
C++11多线程std::condition_variable与 ~ lambda ~
**前言**将之前的一个多线程案例修改一下,增添了运行时间判断的函数#include&amp;amp;amp;lt;sys/timeb.h&amp;amp;amp;gt;//获取执行时间long getSysTime() { struct timeb tb; ftime(&amp;amp;amp;amp;tb); return tb.time * 1000 + tb.millitm;}和双重锁定后:#include&原创 2019-03-08 10:46:51 · 1960 阅读 · 0 评论 -
C++11多线程单例设计模式共享数据处理
**前言**仅仅是学习设计模式而不用于实际,很快会忘记。从项目中学习处理复杂问题的方法,将之总结为设计模式才是正道。单例设计模式原创 2019-03-07 18:50:50 · 395 阅读 · 0 评论 -
C++11多线程从join到unique_lock
**前言**C++内容还是很复杂的,一般的时候使用的都是C的语法,能用到类和模板的内容都少见。仅仅是使用C的内容而用C++做项目这也太浪费了,必须再进阶学习一下。继承、多态、封装都需要进一步的熟悉,至少在一个复杂到有几十步的任务里一定需要。...原创 2019-03-01 10:12:57 · 309 阅读 · 0 评论 -
C++正则表达式 分组
前言输入的代码当做是字符串,我需要把其中的标识符、数字、复数、函数、关键字等识别出来。之前做的计算器改进版本时,用了两次匹配,第一次分割Token,第二次分类Token,但是我想让这个分类步骤快一点,如果能在第一次分割的时候得到分组信息也就能省略第二次匹配了!...原创 2020-01-29 13:10:43 · 1731 阅读 · 0 评论 -
lang:计算器
前言目前这个计算器还存在的问题:数字只能是单个整数、只能进行加减乘除、取余、乘方的操作!!...原创 2019-12-30 15:26:39 · 293 阅读 · 0 评论 -
【C++】友元接口与模板接口
前言这个友元接口与模板接口,说实话实际常常做成什么样我可不知道。原创 2019-08-30 11:47:22 · 783 阅读 · 0 评论 -
【C++】动态库制作、修改与测试
前言这部分知识算是必须要掌握的吧。我使用的是VS2017,其实我觉得哪个版本都没太大区别,VS2013或是VS2019。第一步:创建DLL项目第二步:新建类test&新建测试项目APP这个项目和Dll_Try建立在一起:在解决方案’Dll_Try’上右击,选择添加新项目,选择Windows控制台项目。APP是Windows控制台项目,用来测试制作的动态链接库。Dll_Tr...原创 2019-08-18 14:40:00 · 664 阅读 · 0 评论 -
《C++游戏编程入门 第四版》的例子GameLobby
前言像一些小游戏只是考查基本功底而已,所以除了处理的逻辑,其他都不重要。GameLobby链表与重载左移操作符的知识。Player.h#pragma once#include&amp;lt;iostream&amp;gt;#include&amp;lt;string&amp;gt;#include&amp;lt;iomanip&amp;gt;using namespace std;cla原创 2019-03-17 09:36:55 · 2804 阅读 · 0 评论 -
《C++游戏编程入门 第四版》的例子Blackjack-
前言这是《C++游戏编程入门 第四版》的最后一个例子,还挺复杂的。要完成这个制作,先要弄明白Blackjack的游戏规则。简化版Blackjack(21点)规则:游戏由2到6个人玩,使用除大小王之外的52张牌,游戏者的目标是使手中的牌的点数之和不超过21点且尽量大。一个庄家Houser,多个玩家Player2至9牌,按其原点数计算;K、Q、J和10牌都算作10点(一般记作T,即te...原创 2019-03-17 13:24:20 · 2241 阅读 · 2 评论 -
#define调用函数时参数传递出错
**前言**#include<iostream>using namespace std;#define CALL_WITH_MAX(a,b) func( (a)>(b)?(a):(b) )void func(int m) { cout << "max = " << m<<endl;}void main() { int...原创 2019-03-29 18:24:21 · 788 阅读 · 0 评论 -
const一般如何使用
准备C++基础知识和清晰的头脑char greeting[] = “Hello”;char* p = greeting;//non-const pointer, non-const dataconst char* p = greeting;//non-const pointer,const datachar* const p = greeting;//const pointer,non...原创 2019-03-29 20:09:37 · 316 阅读 · 0 评论 -
文件加密和解密C/C++
前言这篇就是简单的C/C++练习,因为是以前做过的,所以就简单介绍下啦。主要涉及的知识就是main函数参数,这篇我在Opencv学习开篇写过。文件操作,这个也挺简单。加密解密的思路是用二进制的形式读取文件,然后逐个字节异或一个数就是加密,再异或一次就是解密了。C版本#include<stdio.h>#include<string.h>//文件打开方式不一样...原创 2019-04-05 19:04:24 · 5057 阅读 · 0 评论 -
【C+++】异常与析构
前言这篇也就是在析构函数里处理潜在风险的处理办法。如果一个类在析构的时候出错,那么程序可能马上结束或者发生不明确行为。为了不让异常被传递出去就应该在析构中解决掉。1.什么是异常从析构函数中传递出去?难道是析构函数内抛出异常不会报错吗???不是。很幸运,现在的编译器是不会放过析构函数中抛出的异常的。注意一般不要析构中抛出异常就行了。但是如果不确定是否会抛出异常...原创 2019-04-14 00:07:39 · 298 阅读 · 0 评论 -
【C++】确保接口被正确使用
前言并不是每一个项目都需要设计复杂的接口,但是为了养成很好的编程习惯,我觉得一般还是写复杂点吧!更复杂、更多的代码是为了之后更好的扩展和维护。...原创 2019-08-06 07:33:22 · 180 阅读 · 0 评论 -
【C++】非成员函数有时比成员函数有更好的封装性
通过这篇你也许可以看出,不是什么时候都需要OOP的。有时需要的是小小的模块,有时需要的允许继承的抽象类。合理使用OOP思想,在完备、拓展与简单、易用间寻找平衡。原创 2019-08-11 17:23:08 · 300 阅读 · 0 评论 -
C++链表写成类,用起来多轻盈
前言写一个普通的单链表模板类。将链表结点的增加、销毁等功能封装成接口。#include <iostream>using namespace std;////单链表类模板template<class T>class list{public: list(T d)//赋值 { data = d; next = NULL; } void add...原创 2019-03-10 00:36:35 · 431 阅读 · 0 评论