利用 get 成员函数可读取文件中的一切字符,包括空白字符、文件结尾。
用 >> 读取文件,会自动忽略空白字符(空格、换行符、制表符)
C++ 预定义的字符函数(均在 cctype 库中定义):
toupper(Char_type) 返回 Char_type 的大写形式
tolower(Char_type) 返回 Char_type 的小写形式
isupper(Char_type) 若 Char_type 为大写,则返回真
islower(Char_type) 若 Char_type 为小写,则返回真
isalpha(Char_type) 若 Char_type 为字母,则返回真
isdigit(Char_type) 若 Char_type 为 '0'-'9' 数字,则返回真
isspace(Char_type) 若 Char_type 为空白字符(空格、换行符),返回真
例如:下例代码为读取以 '.' 结尾的句子,然后将所有空格替换成 '-' 显示
char ch;
do{
cin.get(ch);
if( isspace(ch) )
cout << '-';
else
cout << ch;
}while(ch != '.');
注意:由于计算机存储字符都是存储其ASCII码,为数字形式,再加上C++输出流 cout 自动识别类型,所以,下例会输出数字,而非字符:
cout << toupper('a');
要想输出字符,可采用如下两种方式:
一:用强制类型转换
static_cast<char>( toupper('a') );
二:用字符变量接收 toupper 的值,然后输出:
char ch = toupper('a');
cout << ch;