利用 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 为空白字符(空格、换行符),返回真
例如:下例代码为读取以 '.' 结尾的句子,然后将所有空格替换成 '-' 显示
1 char ch; 2 do{ 3 cin.get(ch); 4 if( isspace(ch) ) 5 cout << '-'; 6 else 7 cout << ch; 8 }while(ch != '.');
注意:由于计算机存储字符都是存储其ASCII码,为数字形式,再加上C++输出流 cout 自动识别类型,所以,下例会输出数字,而非字符:
1 cout << toupper('a');
要想输出字符,可采用如下两种方式:
一:用强制类型转换
static_cast<char>( toupper('a') );
二:用字符变量接收 toupper 的值,然后输出:
1 char ch = toupper('a'); 2 cout << ch;