C++第六章笔记

2014/10/13 posted in  C++

第六章主要讲的是分支语句、逻辑运算符和文件读写入门,分支结构没有什么可以总结的,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)
{
;
}