第六章主要讲的是分支语句、逻辑运算符和文件读写入门,分支结构没有什么可以总结的,C++的分支结构和C完全一样。
但在逻辑运算符方面,C++居然支持直接用and,or,not来代替&&,||,!。也就是说,C++将前三个单词作为保留字(但不是关键字),不可以将前三个单词作为变量名。
C++在C上完美继承了字符处理的相关函数集,在C++中封装在cctype(原ctype.h)头文件。
其中常用函数:
函数名称 | 返回值 |
---|---|
isalnum() | 如果参数是字母数字,即字母或数字,该函数返回true |
isalpha() | 如果参数是字母,该函数返回真 |
isblank() | 如果参数是空格或水平制表符,该函数返回true |
iscntrl() | 如果参数是控制字符,该函数返回true |
isdigit() | 如果参数是数字(0~9),该函数返回true |
isgraph() | 如果参数是除空格之外的打印字符,该函数返回true |
islower() | 如果参数是小写字母,该函数返回true |
isprint() | 如果参数是打印字符(包括空格),该函数返回true |
ispunct() | 如果参数是标点符号,该函数返回true |
isspace() | 如果参数是标准空白字符,如空格、进纸、换行符、回车、水平制表符或者垂直制表符,该函数返回true |
isupper() | 如果参数是大写字母,该函数返回true |
isxdigit() | 如果参数是十六进制的数字,即0~9、a~f、A~F,该函数返回true |
tolower() | 如果参数是大写字符,则返回其小写,否则返回该参数 |
toupper() | 如果参数是小写字母,则返回其大写,否则返回该参数 |
文件输入输出入门
和C不一样,C++实现文件输入输出的方式几乎和对标准输入输出的方式一样。
C++通过对ostream类和istream类来实现标准输入输出的,而文件是依靠ofstream类和ifstream类来实现,并且包含在fstream头文件中。
我们可以自己定义ofstream类和ifstream类的对象,用成员函数open打开它,使用运算符>进行操作,用完后用close关闭它。
写入到文本文件
ofstream outFile;
ofstream fout;
outFile.open("text.txt");
char s[100];
cin >> s;
fout.open(s);
double data;
cin >> data;
outFile
应用起来十分方便,十分高大上。
文件输入输出可以使用标准输入输出的任何方法(我都怀疑文件输入输出是标准输入输出的继承),比如格式化方法如setf()和precision()。当然,这些函数只影响调用它们的对象。
在默认情况下,打开一个文件时发现文件不存在,则会新建这个文件,如果存在这个文件,则会先把文件清空,然后重新写(也就是清零了)。
读取文本文件
ifstream inFile;
ifstream fin;
inFile.open("text.txt");
char s[100];
cin >> s;
fin.open(s);
double data;
inFile >> data;
char line[80];
fin.getline(line.80);
一样的高大上。
如果文件打开失败,则is_open()返回TRUE,反之返回FALSE,因此可以判断是否成功打开了文件。
在文件操作头文件里,还定义了用于同操作系统通信的参考值EXIT_FAILURE,函数exit()终止程序。
if(!inFile.is_open())
{
exit(EXIT_FAILURE);
}
因为文件操作意外挺多,所有有个good类方法,来确定操作有木有成功。
所以建议每操作一次就检查一下good是否返回TRUE,
inFile >> value;
while(inFile.good())
{
inFile >> value;
}
因为inFile的返回值就是inFile.good()(和cin类似),所以可以简化:
while(inFile >> value)
{
;
}