- 浏览: 86250 次
- 性别:
- 来自: 广州
最新评论
-
songfantasy:
不错,学习了
java与c/c++之间的数据交互-----jni点滴 -
wen0301:
有时间,读读看,并且看看花多长时间。
为了练好口语,你敢不敢每天读一遍,坚持一个月? -
wen0301:
加一些 代码,效果会更好。。。
设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 -
wen0301:
能加一些实际代码 效果会更好吧~~
设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 -
lijiancool:
每天一遍,都不要做其他事情了,哦滴神呀。。。。
为了练好口语,你敢不敢每天读一遍,坚持一个月?
文章列表
在C/C++函数中使用可变参数,
下面介绍在C/C++里面使用的可变参数函数。
先说明可变参数是什么,先回顾一下C++里面的函数重载,如果重复给出如下声明:
int func();
int func(int);
int func(float);
int func(int, int);
...
这样在调 ...
C关于指针和内存的那些大事
对于C的指针使用和内存分配,我想每一个C程序员在使用时都心惊胆寒,至少我是这样的.
现在我终于找到了自己的圣经,那就是林锐博士在他的<<高质量C/C++编程> ...
关于开源与许可协议
开源,其实并不仅仅是适用于对某种软件生产过程的描述,准确的定义参照维基百科
:开放源代码描述了一种在产品的出品和开发中提供最终源材料的做法。也就是说存在开源的硬件甚至别的产品。不过 ...
linux平台可以使用opendir函数来打开一个目录,用readdir读取目录当中的一个entry(一个entry可以是子目录,文件,软硬链接等),如果需要读取所有目录下面的文件,需要使用while((entry
= readdir(dp))) 来读去每个entry,直到读取的entry == NULL。
还有需要注意的就是目录打开之后,需要自己关闭的,可以调用closedir(DIR*)来关闭,这个和文件fd的操作非常类似,不会的同学可以参考标准的stdio文件操作。
下面代码是从wiki上面摘过来的, listdir扮演了打印指定目录下 ...
c++编程网
MFC
Visual C++
MFC 1.0 版
Microsoft C/C++ 7.0 版
MFC 2.0 版
Visual C++ 1.0
MFC 2.5 版
Visual C++ 1.5
MFC 3.0 版
Visual C++ 2.0
MFC 3.1 版
Visual C++ 2.1
MFC 3.2 版
Visual C++ 2.2
MFC 4.0 版
Visual C++ 4.0
MFC 4.1 版
Visual C++ 4.1
MFC 4.2 版
Visua ...
boost regex默认使用perl正规表达式。
在未指定情况下使用贪婪模式匹配。
使用?可以指定为非贪婪模式,下面是维基上的描述:
?
当该字符紧跟在任何一个其他限制符(*,+,?,{n
},{n
,},{n
,m
})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串「oooo
」,「o+?
」将匹配单个「o
」,而「o+
」将匹配所有「o
」。
比如在匹配html文件时应该使用:
<a href="(\S*)">(.*?)</a ...
#includeiostream>
#includeiconv.h>
using namespace std;
int utf8togb2312(const char *sourcebuf,size_t sourcelen,char *destbuf,size_t destlen)
{
iconv_t cd;
if( (cd = iconv_open("gb2312","utf-8")) ==0 )
return -1;
memset(destbuf,0,destlen);
const char **s ...
ATL ActiveX控件中用WTL::CButton动态添加按钮代码步骤
首先必须是添加了一个ATL控件,生成了相应的类了。
1,包含头文件
#include <atlctrls.h>
2,定义资源ID
#define IDC_BTN_PLAY 6000
3,在类声明中定义成员。
CButton m_btnPlay;
4,在WM_CREATE消息中
RECT rc1;
rc1.left = 60;
rc1.top = 0;
rc1.bottom = rc1.top + 18;
rc1.right = rc1.left + 50;
...
std::ifstream inf("dangdang.txt",ios::in|ios::binary) ;
stringstream in ;
in << inf.rdbuf() ;
cout << in<< endl ;
printf("%s" , in.str().c_str()) ;
如果让你用C++来生成0——N-1之间的随机数,你会怎么做?你可能会说,很简单,看:
srand( (unsigned)time( NULL ) );
rand() % N;
仔细想一下,这个结果是随机的吗(当然,我们不考虑rand()函数的伪随机性)?
不是的,因为rand()的上限是RAND_MAX,而一般情况下,RAND_MAX并不是N的整数倍,那么如果RAND_MAX % =
r,则0——r之间的数值的概率就要大一些,而r+1——N-1之间的数值的概率就要小一些。还有,如果N > RAND_MAX,那该怎么办?
下面给出一种比较合适的方案,可以生成任意范围内的 ...
解决一个问题通常有多种方法, 我们总想找到最高效的,所以需要对比不同算法执行所用的时间。可惜的是,C++中提供的方法一般只能精确到毫秒级。
提供一种更加精确的方法。编写一个函数,可以在C++中这样写:
__declspec (naked) unsigned __int64 GetCpuCycle( void )
{
_asm
{
rdtsc
ret
}
}
RDTSC的返回值存放在EDX EAX中, EDX为高32位,EAX为低32位。这里的 RDTSC 指令( Read Time Stamp Counter ), 获得CPU的高精度时 ...
C99 有很多和 string 相关的函数,如 strcat , strchr , strcmp , strcpy , strlen , strncat , strncmp , strncpy 等。然而使用 C++ 编程时,所有和 string 相关的操作均可以使用 string 类的相关接口完成, string 提供和原来 C 接口类似的功能和性能,同时提供更高的安全性。
String 类有一个特性: a string of length n must manage a block of memory whose size is at least n + 1 。即长度为 n 的 str ...
new用法:
1. 开辟单变量地址空间
1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int
即为将一个int类型的地址赋值给整型指针a.
2)int *a = new int(5) 作用同上,但是同时将整数赋值为5
2. 开辟数组空间
一维: int *a = new int[100];开辟一个大小为100的整型数组空间
...
这里以ASSP(Anti-Spam SMTP Proxy)为例,介绍下自启动脚本:
#!/bin/sh -e
# Start or stop ASSP
# chkconfig:345 89 17
# description: “Anti-Spam SMTP Proxy”
PATH=/bin:/usr/bin:/sbin:/usr/sbin
case “$1″ in
start)
echo -n “Starting the Anti-Spam SMTP Proxy”
cd /usr/share/assp
perl assp.pl
;;
stop)
echo - ...
函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动 ...