c++开发
文章平均质量分 59
迷途小码
大数据及后台开发 python|scala|c|java|go
展开
-
一个itoa的实现
//自己找到了一个itoa的实现 void itoa(unsigned long val,char *buf,unsigned radix){ char *p;/*pointer to traverse string*/ char *firstdig;/*pointer to first digit*/ char temp;/*temp char*/ unsigned digval;转载 2014-08-06 14:11:11 · 1306 阅读 · 0 评论 -
如何使用fstream类进行文件的I/O处理
第一步:创建文件流 输入文件流(ifstream)支持重载的 >> 操作符,同样,输出文件流(ofstream)支持重载的 << 操作符。结合了输入和输出的文件流被称为 fstream。下面的程序创建了一个 ifstream 对象:dict,并将该对象中的每一个单字显示到屏幕上: 我们必须调用string::c_str() 成员函数,因为fstream 对象只接受常量字符转载 2014-08-06 14:18:11 · 748 阅读 · 0 评论 -
C++ 使用STL string 实现的split,trim,replace
C++ 使用STL string 实现的split,trim,replace-修订编辑器加载中...使用python的时候默认str 对字符串操作支持非常丰富,相信每个C++程序员都自己写过string的strim、split、replace,写个小工具函数,留着用,以前偷懒,写了好几次,这次总结一下,贴出来。转载 2014-09-07 21:42:47 · 1084 阅读 · 0 评论 -
c++ unordered_map compiling issue with g++
Question:I am using g++ in UbuntuAnswer:转载 2014-08-14 09:08:13 · 2438 阅读 · 0 评论 -
(C++)UrlEncode的标准实现
关于UrlEncode的实现(C++),网上有很多不同的版本,对需要编码的字符集的选取并不统一。那么到底有没有标准呢?答案是有的,参见wiki 绝对不编码的,只有字母、数字、短横线(-)、下划线(_)、点(.)和波浪号(~),其他字符要视情况而定,所以一般性的urlencode只需保留上述字符不进行编码。 下面给出实现:[cpp] view plainc转载 2014-10-17 12:39:35 · 819 阅读 · 0 评论 -
inet_aton和inet_network和inet_addr三者比较
知识背景:210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的IP地址。英语叫做binary data。(其实binary是二进制的意思)问题所在:如何在字符串形式的IP和整数形式的IP之间转转载 2015-08-18 10:00:32 · 681 阅读 · 0 评论 -
`GLIBCXX_3.4.15' not found
今天在编译完一个小程序,运行时报错:prog1: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by prog1)$ strings /usr/lib64/libstdc++.so.6|grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2转载 2016-02-22 15:27:39 · 1315 阅读 · 0 评论 -
linux 平台下C语言创建文件
#include #include #include #include #include void create_file(char *filename){ if(creat(filename,0755)<0){ printf("create file %s failure!\n",filename);转载 2016-11-30 18:29:29 · 2327 阅读 · 0 评论 -
strtok、strtok_s、strtok_r 字符串分割函数
1、strtok函数函数原型:char * strtok (char *str, const char * delimiters);参数:str,待分割的字符串(c-string);delimiters,分割符字符串。该函数用来将字符串分割成一个个片段。参数str指向欲分割的字符串,参数delimiters则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现转载 2016-12-16 13:28:49 · 535 阅读 · 0 评论 -
Maximum length of the textual representation of an IPv6 address
45 characters.You might expect an address to be0000:0000:0000:0000:0000:0000:0000:00008 * 4 + 7 = 398 groups of 4 digits with 7:between them.But if you have anIPv4-mapped IPv6 address...转载 2019-07-25 15:33:12 · 165 阅读 · 0 评论 -
stl string常用函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string类的字转载 2014-06-25 17:18:33 · 578 阅读 · 0 评论 -
glob 应用示例
/**?[]{}~typedef struct{ int gl_patch; char** gl_pathv; int gl_offs;}glob_tGLOB_ERR,GLOB_MARK,GLOB_NOSORT,GLOB_DOOFS,GLOB_NOCHECK,GLOB_APPEND,GLOB_NOESCAPE,GLOB_PERIOD,GLOB_BRCAE,GLOB_ACE,GLOB原创 2014-05-13 09:28:28 · 995 阅读 · 0 评论 -
sscanf 函数说明
sscanf() - 从一个字符串中读进与指定格式相符的数据 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明: sscanf与scanf类似,都是用于输入的,只原创 2014-05-13 09:35:45 · 657 阅读 · 0 评论 -
获取文件信息
#include #include #include #include #include //获取文件大小,单位Byte int getFileSize(char* fileName){ int fd; struct stat stat; if(fd = open(fileName, O_RDONLY) < 0) { printf("Open file原创 2014-03-17 17:18:17 · 664 阅读 · 0 评论 -
一个Linux下C线程池的实现
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker结构就是一个任务)。转载 2014-04-16 15:09:25 · 523 阅读 · 0 评论 -
简单介绍VC++6.0下如何使用压缩库ZLIB
1. 如何获得zlibzlib的主页是:http://www.zlib.net/2. 用VC++6.0打开把下载的源代码解压打开,VC6.0的工程已经建好了,在\projects\visualc6. 双击zlib.dsw, 可以在VC++6.0中看到里面有3个工程: zlib 是库文件(编译设置选中 win32 lib debug / release), 工程example转载 2014-04-16 15:14:44 · 1487 阅读 · 0 评论 -
文本文件的换行符:CR , LF ,CR/LF
在文本处理中, CR, LF, CR/LF是不同操作系统上使用的换行符.*Dos和windows采用回车+换行CR/LF表示下一行,*UNIX/Linux采用换行符LF表示下一行,*苹果机(MAC OS系统)则采用回车符CR表示下一行.CR用符号'\r'或'^M'表示, 十进制ASCII代码是13, 十六进制代码为0x0D; LF使用'\n'或'^J'符号表示, A原创 2014-04-17 09:35:55 · 5760 阅读 · 0 评论 -
printf格式控制符的完整格式
% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。⑤l或h:l对整型指转载 2014-05-07 13:45:33 · 4374 阅读 · 0 评论 -
gzjoin -- command to join gzip files into one gzip file
/* gzjoin -- command to join gzip files into one gzip file Copyright (C) 2004 Mark Adler, all rights reserved version 1.0, 11 Dec 2004 This software is provided 'as-is', without any express or原创 2014-04-08 11:46:17 · 898 阅读 · 0 评论 -
getpwuid 得到指定用户信息
和系统数据相关的passwd 结构和系统数据相关的一个结构passwd定义如下该结构描述了/etc/passwd的文件记录行 包括用户名 密码 用户ID 用户组ID 真实姓名 用户主目录和默默认SHELL相关的API有struct passwd *getpwuid(uid uid)struct paswd *getpwnam(const char *name)g转载 2014-05-19 12:53:33 · 1443 阅读 · 0 评论 -
linux 目录遍历示例
#include #include #include #include void do_dir (char dirname[]){ DIR *dir_p; struct dirent *direntp; if((dir_p = opendir (dirname)) == NULL) { printf ("dir ERROR !!\n"); exit (0); }原创 2014-05-13 09:30:23 · 684 阅读 · 0 评论 -
multiset 应用示例
/* * Copyright (c) 2006 All rights reserved. * 文件名:MultiSet.cpp * * 文件标识:MultiSet * 摘要:MultiSet容器编程示例 * 输入:无 * 输出:输出MultiSet容器对象的信息 * * 当前版本 0.01 * 作者:罗 * 完成日期:2006年4月5日 */#include #inc原创 2014-05-13 09:29:34 · 611 阅读 · 0 评论 -
可变参数应用
#include #include void foo(char *fmt, ...){ va_list ap; int d; char c, *s; va_start(ap, fmt); while (*fmt) switch(*fmt++) { case 's': /* 字符串 */ s = va_arg(ap, char *); printf(原创 2014-03-17 17:16:49 · 697 阅读 · 0 评论