1.char常量,最简单的方法是将字符用单引号括起。
如在ASCII系统中对应的'A'为65,即字符A的ASCII码
这种表示法优于数值编码,它更加清晰,且不需要知道编码方式。如果系统使用的是EBCDIC,则A的编码不是65
但'A'表示的仍然是字符A
(C++ primer plus - p47)
2.建议使用endl,不推荐使用\n来换行。因为\n有可能不是代表换行,它是有系统依赖性的
(Sams Teach Yourself C++ in One Hour a Day - p32)
3.signed char VS unsigned char
与int不同的是,char在默认情况下既是没有符合,也不是有符号。是否有符号由C++实现决定。
4.程序需要处理的字符集可能无法用一个8位的字节表示,如日文,中文
wchar_t宽字符类型是一种整数类型,它可能是unsigned short,也可以是int类型
iostream头文件提供了wcin和wcout来处理wchar_t流
5.常量推荐使用const定义,而不是#define
const定义的常量有具体的类型;
可以将定义限定在特定的函数或文件中(通过作用域);
可以将const用于更复杂的类型(数组)
6.浮点数的E表示法,外观如3.45E6指3450000,3.45称为尾数,6称为指数
d.dddE+n指的是将小数点向右移n位,d.dddE-n指的是将小数点向左移n位
7.强制类型转换通用格式:
(typeName) value //C语言格式
typeName (value) //C++格式
新格式的想法是要让强制类型转换就像函数调用
8.基本数据类型小结
short至少为16位,int至少与short一样长,long至少为32位且至少和int一样长
C++确保float不比double长,而double不比long double长,通常float使用32位内存
double使用64位,long double使用80到128位
9.读取一行文本
cin读取字符串,遇到回车,空格,制表符就返回
有时需要读取一行文本。
istream中的类(cin)提供了一些面向行的成员函数:getline()和get()
getline(buffer, size)将丢弃换行符,get(buffer, size)将换行符保留在输入流中
cin.get()将读取下一个字符(即使是换行符)——它通常与get(buffer,size)联合使用
或者将这两个成员函数拼接起来:
cin.get(name,size).get();
一些老的C++版本没有实现不接受任何参数的get(),而是需要接受一个char参数:
char ch;
cin.get(ch);
为什么cin.get会存在呢?首先,老式实现没有getline(),其次如何知道停止读取的原因是已经读取了整行
而不是由于数组已填满呢?查看下一个输入字符,如果是换行符,说明已读取了整行。
总之,getline使用起来简单,但get使得检查错误更简单些。
阅读(2000) | 评论(0) | 转发(0) |