想必大家对条形码都不陌生,在超市购物的时候,收银员就是通过扫描商品的条形码来快速的确定商品信息的。我们知道,商品上的条形码由很多粗细不等的线条以及相应的数字数字组成,这些信息只能唯一确定一类商品,却无法涵盖任何文本信息,这便是一维条形码的局限性所在。为了存储更多的资料,二维码便应运而生了,其中以QR码应用最为广泛,QR源自英文“Quick Response” 的缩写,即快速反应的意思。它最先在日本得到广泛应用。相比一维条形码,QR二维码不要求摄像头(扫描仪)垂直、平行地读取条形码信息,它三个角上的定位图案可以用来协调扫描误差。QR二维码不仅可以存储数字信息,还能存储网址、网页书签、手机联系人、电话号码、手机短信、电子邮件、GPS卫星定位坐标、文本信息等等。 阅读全文
您在PPStream上完整看下来的影片在本地是有缓存的,缓存文件大小1G。Windows下的缓存文件名是ppsds.pgf,位置可以通过打开PPStream,在“工具–>选项–>点播服务–>缓存文件管理”里面找到。Ubuntu下的缓存文件名是ems.cache,位置为“~/.pps/datacache”,注意‘~’代表家目录,“.pps”是一个隐藏的文件夹。您最近观看的影片都能从缓存文件中提取成能够正常播放的视频,下面分别介绍Windows和Ubuntu下提取视频的办法。 阅读全文
听同事说PPStream在Linux下的客户端很好用,界面与功能跟Windows版相差无几,更难能可贵的是PPStream采用P2P技术,即点对点通信技术,可以共享互联网上其他用户的带宽,在主服务器宽带资源有限的情况下能够从其他同样连接了该服务器的主机那获得转发过来的资源,有点分布式的味道。像我们熟知的电驴、迅雷、酷狗就是用的P2P技术,所以他们的下载速度那是嗖嗖的。同样的道理,PPStream相比其他在线播放器能够获得更流畅的播放效果。于是,我决定为我的Ubuntu安装上PPStream,看一部好评如潮的电影——源代码(source code)。 阅读全文
实现一个函数reverse(char *),将指针所指向的字符串内的单词逆序输出,例如“Welcome to CppLive . com !”的指针传入该函数后输出“! com . CppLive to Welcome”。
问题的关键是先依靠空格符(‘ ‘)从字符串中划分出一个个单词出来,我们可以从字符串头循环读入一个个字符到一个临时string对象中,当遇到一个空格符时暂停读入,这时临时string对象中存储的便是一个单词,将该临时string对象push_back到一个vector中,同时clear该临时string对象以便重新存储下一个单词。当遇到null时,字符串便读入完毕,我们可以利用reverse_iterator从容器尾(rbegin())到容器头(rend())逆序输出。 阅读全文
分章分类 : C++
读入一段文本到vector对象,每个单词储存为一个vector中的一个元素,把vector中的每个元素的小写字母变成大写字母,输出vector转换后的元素,每八个单词为一行输出。
首先从标准输入端循环读入文本中的单词到string变量中直到遇到文件结束符,可以通过管道读取文本,也可以从终端敲入语句,用“Ctrl+D”结束。同时将读入的单词循环push_back到vector对象中。然后利用迭代器循环读取每个单词,同时利用cctype头文件中的toupper()函数将单词中的每个小写英文字母转换为大写。最后通过对8取余来判断是否换行并输出所有单词。 阅读全文
给孩子讲再多再多大道理也不及一部动画作品的影响力,我想日本人一定深刻地认识到了这一点,细数我们看过的日本动画作品,很多都洋溢着自信、勇敢、善良、顽强等人性光辉,受这些文化熏陶的孩子们是不会轻易被打倒的。这便是我们应该借鉴和反思的地方,越是物质条件优越的年代越不能忽视了培养孩子的抗挫折能力。被宠着腻着长大的孩子谁敢指望他有所作为?《藏獒多吉》就是这样的一部动画作品,借助藏獒这一大家熟悉的动物教育我们要勇敢。 阅读全文
1、形参的初始化与变量的初始化一样:如果形参具有非引用类型,则复制实参的值;如果形参为引用类型,则它是实参的别名。
2、可以将指向const对象的指针指向非const对象,但不能将指向非const对象的指针指向const对象。但在函数非指针非引用形参里,结果就不受约束了,不论形参是否是const类型的,只要不是引用或者指针,对应的实参既可以是const对象,也可以是非const对象。
3、令人吃惊的是,尽管函数的形参是const,但编译器却不会将形参是非const类型的同名函数视为函数重载。例如
void fcn(const int i) { /* fcn函数可以读取i的值却无法更改i的值 */} void fcn(int i) { /* ... */} //编译器将提示"error:redefines fcn (int)"错误
其实这种用法是为了支持对C语言的兼容,因为在C语言中,具有const形参或非const形参的函数无法区别。 阅读全文
一、kill –l 显示所有信号,linux下有64个
1) SIGHUP 2) SIGINT(ctrl+c) 3) SIGQUIT(ctrl+\) 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL(可靠地杀死进程) 10) SIGUSR1
11) SIGSEGV(使用非法内存地址产生的信号——段错误) 12) SIGUSR2 13) SIGPIPE 14) SIGALRM(设定时间结束,杀死进程) 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT(使已经中断的信号继续执行) 19) SIGSTOP(可靠地暂停进程) 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 阅读全文
时间过得真快,一转眼便到了第三部了,变形金刚从2D升级到了3D,也许是看多了3D的缘故,3D的变形金刚相比其他3D电影也没见得有多出彩,依旧还是汽车机器人之间的打打杀杀跟地球情侣之间的分分合合,男女主角的运气依旧还是好得不可思议,还好画面依旧还是那么逼真。只能说之前的变形金刚已经足够精彩了,以至于要有新的突破很难,整部电影没有期待中的精彩,平平淡淡,中规中矩,呵呵,也许是我太挑剔了吧。 阅读全文
分章分类 : C++, C++Primer笔记
1、对于switch结构,只能在它的最后一个case标号或default标号后面定义变量,定制这个规则是为了避免出现代码跳过变量的定义和初始化的情况,如果要为某个特殊的case定义变量,则可以引入块语句,在该块语句中定义变量,从而保证这个变量在使用之前被定义和初始化。
2、简洁即是美,“*dest++ = *source++”就是一个经典的例子,该表达式等价于
{ *dest = *source; ++dest; ++source; }