随笔分类 - C/C++
unix编程 linux编程 c语言编程
C++ c/c++经常放在一起。
摘要:废话不多说,直接贴代码: 运行结果: 本来想用C++socket来获得的,不过太麻烦,还不如直接通过 管道,来调用 system 系统回调. 可以做成配置,把 cmd 放到配置中,如果发现不起作用了,换一个其他的获取ip的第三方ip地址,并用 shell来筛选出ip地址,这样C++也不需要做处理,拿
阅读全文
摘要:网上搜索C、C++调用lua函数,有一大堆复制粘贴的。 但是搜索《C调用lua的table里面的函数》 怎么就没几个呢? 经过探索,发现其实逻辑是这样的: 1.根据name获取table ;并判断是否为table 2.根据 name2 获取table的成员变量或方法,并判断栈顶的是否为函数 3.将函
阅读全文
摘要:本来我想写这样的代码:class MatchManager{public: MatchManager() { } class OnTimerRunFuncHelper{ public: OnTimerRunFuncHelper(const int setT...
阅读全文
摘要:加载DLL失败,因为 dll 中有一个全局类变量,由于在构造函数 没有初始化变量,导致 初始化 失败 异常。C++ 变量没有初始值,全部都要 手动赋值 为 0 的这个特性 还真是烦人呢。。。
阅读全文
摘要:vector first;//Size()==2 first.push_back(1); first.push_back(2); //first.insert(2); vectorsecond;//Size()==3 + assign?? second.push...
阅读全文
摘要:一般我用C写unix时间戳是这样子的#include#includevoid printfDateTimeStr(struct tm *stm){ char weekday[][4]={"天","一","二","三","四","五","六"}; printf("timestr=%04d-...
阅读全文
摘要:虚函数 ,接口,到底有什么用呢?以前我都是在C++ 里面写C,只用到 简单的C++面对对象知识#includeclass IServerLogic{ virtual ~IServerLogic(){}public: virtual bool OnStart()=0; virtual bool ...
阅读全文
摘要:#include#includeusing namespace std;struct A{ const int value_const() const{return 1;} const int value(){return 1;}};int main(){ A* const a1=...
阅读全文
摘要:cJSON官网是:http://sourceforge.net/projects/cjson/?source=recommended最新版本是2013年的,与2009年的变化不是很大。看了代码,觉得挺好,只是是C语言的,不够好。就改良了一下,内存自己管理。使用std::stringhttp://fi...
阅读全文
摘要:#include #include #include using namespace std;typedef unsigned char BYTE;typedef unsigned int UINT32;typedef unsigned short UINT16;struct Datastru...
阅读全文
摘要:废话不多说,直接看代码:#includeint main(){ int i=5; for(int z=i,zmax=i+10;z<zmax;z++){ printf("i=%d z=%d\n",i,z);i++; } /* 无限循环了.... fo...
阅读全文
摘要:需求:数据库取出的字段类似于 "1,3,4"然后用数字处理后,,比如 "1,2,3" 再存回去#include#includeclass MyStr{public: //根据 "1,2,3" 获得数字数组 static int *split(char * str,const char *split,const int count){ if(strlen(str)==0 || strlen(split)==0) return NULL; if(count <=1) return NULL; int * ints=new ...
阅读全文
摘要:头段时间我的代码,有一个 unsigned char,我需要从sscanf 中读取字符串为这个值。但是一般char 是用%c的,我是要值得。所以我使用了%d %u来读,结果报警告:unsigned char a;sscanf("15","%u",&a);warning: format ‘%u’ expects type ‘unsigned int*’, but argument 3 has type ‘unsigned char*’警告挺烦人的,查了下,才发现自己没有注意过的细节:I'm trying to use this code t
阅读全文
摘要:转自:http://www.cppblog.com/xvsdf100/archive/2013/12/10/204689.html只要接触过c/c++网路编程人都可能会知道select io 模式,网络书籍都说 fd_set {int num; SOCKET arr[64]} 有所限制,因为数组的长度只有64,那么超过64你就不能放,要么你就是用多线程分别实用select.。一些书籍通过改定义宏 使数组的长度变长,但也不实用,不能动态的变化,我总不能定一个非常的长的长度,毕竟是在栈上。 我就在想那么select完全只能在客户端使用,而且套接字还不能超过64。那这不就是一个软肋吗??一直对这个有
阅读全文
摘要:看到了这个题目,就突然要写了,完全徒手写的, itoa_m 数字转换成字符串 是拷贝过来的,也是我积累的源码。这个大整数 主要思想就是按照我们小学学习的 乘法 笔算方法,先单个 乘积,再相加,具体不说了,你应该明白的。这个主要难点就是 字符串转数字 和数字转字符串 以及字符转相加。由于我是用了std::string 所以简单许多。如果改成C语言版本的,还要做许多工作。程序包括了我临时写的 两个大整数相加 的函数。可以通过 开始 运行 (Win+R) ,输入 calc 打开计算机 进行对比。不知道 有没有 Bug!这么一个小程序,好像 费了我一个多小时,关键 就是类库的积累,有类库会很方便的。如
阅读全文
摘要:写的一个程序,要从二进制文件中读取,但是我读取到11396字节的时候 fread返回0,其feof(fp)==16百度百科看到: feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。 EOF是文本文件结束的标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF的16进制代码为0x1A(十进制为26),因此可以用EOF作为文件结束标志。 当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数...
阅读全文
摘要:Windows C++ 获取当前文件夹下有几个文件百度下 居然没有。linux下通过:struct dirent **namelist;int total=scandir(dir,&namelist,0,alphasort);for(i=0;i<total;i++){ free(namelist[i]);}free(namelist);//scandir后需要释放空间的!!!!!!!就可以搞定,在windows下没有dirent.h 头文件和实现。难道 这个 也算是 操作系统 相关的?不同操作系统 这么简单一个功能,还要各自实现,而不能 如同 stdio.h一样 全部 都是标准的
阅读全文
摘要:前一篇文章 中,宽字符集 打印中文,还需要设置 localelocale.h 也不多,附上 头文件的源码View Code /****locale.h - definitions/declarations for localization routines** Copyright (c) Microsoft Corporation. All rights reserved.**Purpose:* This file defines the structures, values, macros, and functions* used by the local...
阅读全文
摘要:wchar_t 是和 char 平等的地位,即 wchar_t 并非 typedef出来的,是原生的变量。简单的说,它拥有两个字节,和short 占用空间一样。比如:字符串 "我们\n"ANSI 的十六进制为:ce d2 c3 c7 0A 006个字节,其中包括字符串最后的\0Unicode十六进制为:11 62 EC 4E 0A 00 00 008个字节,所有的字符 全部是2个字节,即使字母 数字 都是,当然换行\n 也是0A 00 了。一般 程序中字符串 前面加个 L"" 就表示 是Unicode 字符串了。windows下有一个 宏 _T(&quo
阅读全文
摘要:这个 都是经验之谈:比如1.不能把 static变量放到头文件头文件 要放 只能放 extern 声明外部变量,而不能直接有全局变量,或static变量。2.头文件 #include"" 不一定必须放到 头文件中去,有时候 必须要放到 实现文件中去。比如A.h 要使用B.h 但 B.h 也要使用A.h ,A.h 包括B.h 的时候 会出问题的。因为 头文件前面是 #pragma once 避免重复调用头文件。A.h的progma once一调用,但还#include"B.h" 后面的内容还没执行,B.h中包括A.h 就失效了。那么B.h 中使用A.h中的
阅读全文