Code::Blocks 是一款免费的 C/C++ 和 Fortran IDE,旨在满足用户最苛刻的需求。它被设计为非常可扩展和完全可配置的。
围绕插件框架构建,Code::Blocks 可以使用插件进行扩展。可以通过安装/编码插件来添加任何类型的功能。例如,事件编译和调试功能由插件提供。 Continue reading
Code::Blocks 是一款免费的 C/C++ 和 Fortran IDE,旨在满足用户最苛刻的需求。它被设计为非常可扩展和完全可配置的。
围绕插件框架构建,Code::Blocks 可以使用插件进行扩展。可以通过安装/编码插件来添加任何类型的功能。例如,事件编译和调试功能由插件提供。 Continue reading
C++交差调用、C++互相引用
其实变通一下,也可以实现功能,但是我这个人就是这么犟,哈哈。
这个项目是一个机器人自动购买耐克鞋系统(也可以说是一个自动抢鞋系统),需要把某网站的一个JS文件内容用C++改写过来。改写需要尽量的保持原貌,并且适应的添加周边方法,所以我才这么犟。
改写建了两个类(其它类就不说了),Document 类和 Window 类,没有继承关系,但是要把 Document 实例装载到 Window 实例中,而且 Document 实例还有某一方法需要通过 Window 指针来访问其某些属性,这就交差了。
通过在网上查找,了解了一些理论,又通过编译报错,一点点修改,最终实现了C++交差调用、C++互相引用,特此记录: Continue reading
c++正则匹配HTML标签input实例,c++实例
文件demo.html
0 1 2 3 4 5 6 7 8 9 10 11 12 |
...... <!--这里设置一个重复的 id ,并且有一对单引号--> <input type="hidden" value="hk" id='888' id='languageId' /> <input type="hidden" value=" " id="topNavPreviewId" /> <form action="transfers.htm" autocomplete="off" method="get" id="searchForm"> <input class="gnav-bar-search-input" name="keyword" id="keyword" placeholder="搜索" autocomplete="off" autocorrect="off" required=""> <button type="button" class="gnav-bar-search-clear fa fa-times"></button> </form> <input type="hidden" id="productName" value="Air Jordan XXXV CNY PF"> <input type="hidden" id="productLabel" value="男子籃球鞋"> ...... |
c++ 浮点数精确度控制,sprintf()
0 1 2 3 4 5 |
char buf[100]; int a = 10; sprintf(buf, "%.2f", double(a)); // 精度 2 double b = 123.4561; sprintf(buf, "%.2f", b); // 精度 2 sprintf(buf, "%.3f", b); // 精度 3 |
gmp随机数实例,gmp生成随机数
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <iostream> #include <cstring> #include <ctime> #include <gmpxx.h> int main() { clock_t time = clock(); gmp_randstate_t grt; gmp_randinit_default(grt); // 初始化随机数变量 gmp_randseed_ui(grt, time); // 种子赋值 mpz_t key; mpz_init(key); // 初始化整数 // 生成0到 (2^n)-1(含)范围内的均匀分布的随机整数 。 mpz_urandomb(key, grt, 16); gmp_printf("-- 16 bit:\t%Zd\n", key); // 释放占用的内存空间 gmp_randclear(grt); mpz_clear(key); /** * 输出: -- 16 bit: 23086 */ } |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <iostream> #include <cstring> #include <ctime> #include <gmpxx.h> int main() { // 有时为正整数,有时为负整数 mpz_class ran; gmp_randclass rr(gmp_randinit_default); rr.seed(std::time(nullptr)); ran = rr.get_z_bits(125); long int _random = ran.get_ui(); printf("-- 125 bit:\t%d\n", _random); ran = rr.get_z_bits(256); _random = ran.get_ui(); printf("-- 256 bit:\t%d\n", _random); ran = rr.get_z_bits(512); _random = ran.get_ui(); printf("-- 512 bit:\t%d\n", _random); ran = rr.get_z_bits(1024); _random = ran.get_ui(); printf("-- 1024 bit:\t%d\n", _random); /** * 输出: -- 125 bit: 1227284511 -- 256 bit: -840074903 -- 512 bit: -1613957681 -- 1024 bit: 1234011535 */ } |
c/c++,gmp库,gmp浮点数
gmp官方给出了接口说明,但是缺少实例,所以还是不能把gmp很好的利用。于是在网上查找gmp相关实例,查到的都是关于整数的,而且是早形参根本对不上,应该是早期的版本。这不是我想要的,而且我要研究的是浮点数。
gmp中文相关的文章太少了,查到的也都是关于gmp整数的实例,而且有些测试还不能通过。
求人不如求己,那就自己反复做各种测试,反复的看官方相关文档吧。
其实反复的测试,反复的看官方文档,确实有效。
gmp版本:
MSYS2的安装与使用及MinGW64安装配置
MSYS2是工具和库的集合,为您提供了一个易于使用的环境,用于构建,安装和运行本机Windows软件。
它由一个名为mintty的命令行终端 ,bash,git和subversion之类的版本控制系统,tar和awk之类的工具,甚至是autotools之类的构建系统,全部基于Cygwin的修改版。尽管其中一些中心部分基于Cygwin,但MSYS2的主要重点是为本机Windows软件提供构建环境,并使使用Cygwin的部分最少。MSYS2为GCC,mingw-w64,CPython,CMake,Meson,OpenSSL,FFmpeg,Rust,Ruby等提供了最新的本机版本。
为了提供易于安装的软件包并保持更新状态,它具有一个名为Pacman的软件包管理系统,Arch Linux用户应该熟悉该系统 。它带来了许多强大的功能,例如依赖性解析和简单的完整系统升级,以及直接且可复制的程序包构建。我们的软件包存储库包含2000多个预安装的软件包,可供安装。
cygwin命令,cygwin找不到的命令在这里
clear
clear包含在 ncurses
包中,直接从默认源安装即可。
ncurses
是一个基于终端界面开发 类GUI应用程序 的库。
xgettext,msginit,msgfmt
这几个命令属于 gettext_devel
包,用于生成pot/po文件,以及编译po到mo格式。
aclocal
aclocal在 automake
包中,默认源中包含。
autoreconf
autoreconf在 autoconf
包中,默认源中包含。
telnet
安装 xinetd
和 inetutils
包即可,默认源中包含。
TI-RPC客户端服务端接口实例,cygwin libtirpc,
参数传递
TI-RPC允许将单个参数从客户端传递到服务器。如果需要多个参数,则可以将这些组件组合成一个被视为单个元素的结构。从服务器传递到客户端的信息作为函数的返回值传递。无法通过参数列表将信息从服务器传递回客户端。
捆绑
客户必须知道如何联系服务。两个必要的方面是找出服务器所在的主机,然后连接到实际的服务器进程。在每个主机上,一个名为rpcbind的服务管理RPC服务。TI-RPC使用可用的主机命名服务(例如主机文件,NIS +和DNS)来查找主机。
传输协议
传输协议指定如何在客户端和服务器之间传输呼叫消息和回复消息。TS-RPC使用TCP和UDP作为传输协议,但是TI-RPC的当前版本与传输无关,因此可以与任何传输协议一起使用。
呼叫语义
调用语义定义了客户端可以对远程过程的执行承担什么;特别是该过程执行了多少次。这些语义对于处理错误条件很重要。这三种选择分别是一次,最多一次和 至少一次。ONC +提供至少一次语义。远程调用的过程是幂等的:每次调用它们都应返回相同的结果,即使经过多次迭代也是如此。
数据表示
数据表示形式描述了参数和结果在流程之间传递时所使用的格式。为了在各种系统体系结构上起作用,RPC需要标准的数据表示形式。TI-RPC使用外部数据表示(XDR)。XDR是与机器无关的数据描述和编码协议。使用XDR,RPC可以处理任意数据结构,而不管不同主机的字节顺序或结构布局约定如何。有关XDR的详细讨论,请参见附录A,XDR技术说明和附录C,XDR协议规范。 Continue reading
gdb调试命令及基本使用姿势,C/C++调试工具gdb的基本使用姿势,linux下gdb调试,gdb调试工具,gdb调试命令,gdb调试教程,gdb调试实例
run:(简写 r) ,其作用是运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。
continue (简写c ):继续执行,到下一个断点处(或运行结束)
next:(简写 n),单步跟踪程序,当遇到函数调用时,也不进入此函数体;此命令同 step 的主要区别是,step 遇到用户自定义的函数,将步进到函数中去运行,而 next 则直接调用函数,不会进入到函数体内。
step (简写 s):单步调试如果有函数调用,则进入函数;与命令n不同,n是不进入调用的函数的
until:(简写 u)当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体。
until+行号: 运行至某行,不仅仅用来跳出循环
finish: 运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数值等信息。
call 函数(参数):调用程序中可见的函数,并传递“参数”,如:call gdb_test(55)
quit:(简写 q) ,退出gdb Continue reading