传说中的C++十大流派

1.经典C++流:类是核心,例程多用C   Runtime的,很少用模版,一般是正统教育的结果。

2.古典C流:基本上当C用,偶尔用用对象,不使用异常,喜欢怀旧。

3.MFC流:秉承MFC的风格,主要使用MFC/ATL对象和Win32   API,不喜欢STL,用很多的宏把IDE的语法提示模块折磨到崩溃。

4.Portable流:以C   Runtime和STL为主要工具,使用类和模版,不跨平台毋宁死。

5.Functional流:以模版和STL为主要武器,大量使用函数式语言的设计方法,并号称这才是真正的C++。

6.Win32流:多使用全局函数,偏爱Win32   API,但不排斥C   Runtime,通常喜欢轻量级的程序,所以身材也比较苗条。

7.Java流:全面使用Java的风格,不能容许任何全局成员,但允许使用STL的集合类,写很多叫Factory的类。

8.COM流:喜欢AddRef()和Release(),大量使用接口,隐藏一切可以隐藏的东西,诵经的时候要把上帝替换成COM。

9.戒律流:追求完美的C++程序,计较每一个const和throw(),极力避免不安全的cast,随身一定要带一本ISO   C++手册。

10.混沌流:其程序无常形,无恒道,变幻莫测,吾不知其名。

C++文件复制

方法一:逐个字符复制

#include < fstream >

std::ifstream input(“in”,ios::binary);
std::ofstream output(“out”,ios::binary);
char ch;

while (input.get(ch)) output < < ch;

注意:如果使用input>>ch读取字符,则必须先调用input.unsetf(ios::skipws)取消输入流默认的跳过空白符的输入格式,因为换行符是空白符的一种。(BEN注:流失操作以空白字符’/0′为字符串的分割,并忽略它们,直接操作会缺失这些空白字符)

方法二:逐行复制

#include < fstream >
#include < string >

std::ifstream input(“in”,ios::binary);
std::ofstream output(“out”,ios::binary);
std::string line;

while (getline(input,line)) output < < line << "\n";

注意:这里的代码有一个小小的缺陷,如果文件不是纯文本格式的文件,或者文本文件的最后没有换行符,那么会导致复制后的文件末尾添加了一个多余的换行符。(BEN注:可以使用.gcount ()来判断是否到达文件尾,到达则不添加多余的'\n')

方法三:迭代器复制

#include < fstream >
#include < iterator >
#include < algorithm >

std::ifstream input(“in”,ios::binary);
std::ofstream output(“out”,ios::binary);
input.unsetf(ios::skipws);

copy(istream_iterator(input),istream_iterator(),ostream_iterator(output,”"));

同样这里也有一个小技巧,输入流的格式默认为跳过空白字符,因此调用unsetf取消这个格式,才可保证正确的复制。

方法四:缓冲区复制

#include < fstream >

std::ifstream input(“in”,ios::binary);
std::ofstream output(“out”,ios::binary);

output << input.rdbuf();

这里直接使用了输入流的缓冲区,因此没有引入额外的临时对象。(BEN注:不管哪种方式操作,最好都使用缓冲提高效率,比如,可以使用字符串存储文件内容,再一次性写入到新文件,这样可以减少对文件的操作,因为对文件存储器的操作也就是I/O设备相对于内存是极其缓慢的)

很显然,上述四种方法中,最后一种方法最简洁,由于直接操作输入流的缓冲区,从运行效率上来说,也比其他方法有着略微的优势(当然,由于操作系统可能提供了额外的基于设备的文件缓冲机制,也许你无法证实这一点)。因此,除非要对输入内容进行处理,直接复制文件推荐最后一种方法,既不容易出错,又能获得良好的性能。

VC显示行号

VC6LineNumberAddin下载

http://search.xunlei.com/search.php?keyword=VC6LineNumberAddin

1. 如果你的VC安装在C盘,请拷贝文件VC6LineNumberAddin.dll到如下目录:

C:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns

2. 注册

双击VC6LineNumberAddin.reg进行注册。

3. 启用

打开vc6,菜单栏:Tools -> customize -> Add-ins and Macro Files
选中VC6LineNumber Developer Studio Add-in


Sroan日历

九月 2010
« 八 «-»  
 12345
6789101112
13141516171819
20212223242526
27282930  

按月索引文章

分类目录

最近评论