文件命名全部小写,以下划线_分割。
变量名由作用域前缀+类型前缀+一个或多个单词组成,每个单词的首字母要大写。对于某些用途简单明了的局部变量,也可以使用简化的方式,如:i, j, k, x, y, z。
作用域前缀 | 说明 |
---|---|
m_ | 类的成员变量(member) |
sm_ | 类的静态成员变量(staticmember) |
s_ | 静态变量(static) |
g_ | 外部全局变量(global) |
sg_ | 静态全局变量(static global) |
gg_ | 进程间共享的共享数据全局变量(globalglobal) |
作用域前缀 | 说明 |
---|---|
n | 整型和位域变量(number) |
e | 枚举型变量(enumeration) |
c | 字符型变量(char) |
b | 布尔型变量(bool) |
f | 浮点型变量(float) |
p | 指针型变量(pointer) |
pfm | 指向函数的指针变量和函数对象指针 |
g | 数组(grid) |
i | 类的实例(instance) |
举例说明:
int nAge;//整型局部变量,表示年龄
int m_nAge;//整型类成员变量,表示年龄
int nMaxWidth;//整形局部变量,表示最大的宽度
常量名由类型前缀+全大写字母组成,单词间通过下划线_来界定,如:const int nMAX_WIDTH=12;
函数的名称由一个或多个单词组成。为便于界定,每个单词的首字母要大写。
1、公共成员函数
函数名应当使用"动词"或者"动词+名词"的形式。例如:
GetName()
SetValue()
Reserve()
2、保护成员函数
保护成员函数的开头应当加上一个下划线“_”以示区别,例如:_GetName()
3、私有成员函数
私有成员函数的开头应当加上两个下划线“__”,例如:__SetValue()
4、虚方法
虚函数习惯以“Do”开头,例如:
DoRefresh()//虚方法,公共成员函数
_DoEncryption()//虚方法,保护成员函数
5、回调和事件处理函数
回调和事件处理函数习惯以单词“On”开头。例如:
_OnTimer()//虚方法,保护成员函数
OnExit()//虚方法,公共成员函数
类名、结构体名、枚举、类型定义typedef等以大写字母开头,每个单词字母均大写,不包含下划线。例如:
class Student;
struct FootballPlayer;
enum EStudentType;
全大写加下划线,例如:define PI_ROUND 3.0
C++读取文本文件,最大难点就是按编码格式进行读取文本中的汉字,正常getline()函数去读的话,基本全是乱码。下面这段代码可以读取任何文本文件的内容,包括汉字。代码如下:
#include
#include
#include
#include
#include
int main()
{
// Write file in UTF-8
std::wofstream wof;
wof.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8));
wof.open(L"example.txt");
wof << L"This is a test.\n";
wof << L"Ìðïñþ íá ãñÜøù åëëçíéêïýò ÷áñáêôÞñåò\n";
wof << L"Áêüìá ìéá äïêéìÞ;;!!11?1\n";
wof << L"汉字测试\n";
wof.close();
// Read file in UTF-8
std::ifstream f("example.txt");//输入文本路径
std::wbuffer_convert> conv(f.rdbuf());
std::wistream wf(&conv);
#ifdef _WIN32
_setmode(_fileno(stdout), _O_WTEXT);
#else
std::setlocale(LC_ALL, "");
#endif
std::wstring line;
while (getline(wf, line))
std::wcout << line << std::endl;//输出结果
system("pause");
return 0;
}