C++ Primer Plus 学习笔记(第六章)

来源:互联网 发布:知识竞赛软件免费版 编辑:程序博客网 时间:2024/06/05 09:18

C++ Primer Plus 学习笔记(第六章)

1,if else语句

2,逻辑or运算符

3,字符函数库cctype

4,switch和if else

5,break和continue语句

6, C++也有goto语句

7, 写入到文本文件

8, 读取文本文件


1,if else语句


2,逻辑or运算符

i++ <6 || i==j

由于||的优先级运算符低,因此不需要在这些表达式中使用括号。||运算符是个顺序点,也就是说,先修改左边的值,再对右边的值进行判断(C++的说法是,运算符左边的子表达式先于右边的子表达式)。

假设i原来的值是10,则在对i和j进行比较时,i的值将为11.另外,如果左边的值为true,C++将不会去判定右边的表达式的值。因为只要一个表达式为true,则整个表达式为true。


3,字符函数库cctype

Isalnum() 如果参数是字母数字,即字母或数字,该函数返回true。

Isalpha() 如果参数是字母,该函数返回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() 如果参数是小写字符,则返回其大写,否则返回该参数。


4,switch和if else

switch并不是为处理取值范围而设计的,switch语句中的每一个case标签都必须是一个单独的值。另外,这个值必须是整数(包括char)。因此,switch无法处理浮点测试。另外,case标签值还必须是常量。如果选项涉及取值范围、浮点测试或两个变量的比较,则应使用if else语句。

如果既可以使用if else语句,也可以使用switch语句,则当选项不少于3个时,应使用switch语句。


5,break和continue语句

break和continue语句都使程序能够跳过部分代码。可以在switch语句或任何循环中使用break语句,是程序跳到switch或循环后面的语句处执行。Continue语句用于循环中,让程序跳过循环体中余下的代码,并开始下一轮循环。

虽然continue语句导致该程序跳过循环体的剩余部分,但不会跳过循环的更新表达式。在for循环中,continue语句使程序直接跳到更新表达式处,然后跳到测试表达式处。然而,对于while循环来说,continue将使程序直接跳到测试表达式处,因此,while循环体中位于continue之后的更新表达式都将被跳过。


6, C++也有goto语句

Goto paris;

Paris:…

在大多数情况下(有些人认为,在任何情况下),使用goto语句不好,而使用结构化控制语句(如ifelse,switch,continue等)来控制程序的流程。


7,        写入到文本文件

a,必须包含头文件iostream。

b,头文件iostream定义了一个用处理输出的ostream类。

C,头文件iostream声明了一个名为cout的ostream变量(对象)。

D,必须指出名称空间std:例如,为引用元素cout和endl,必须使用编译指令using或前缀std::。

文件输出与此极其相似

A,       必须包含头文件fstream。

B,头文件fstream定义了一个用于处理输出的ofstream类。

c,需要声明一个或多个ofstream变量(对象),并以自己喜欢的方式对其进行命名,条件是遵守常用的命名规则。

D,       必须指出命名空间std;例如,为引用元素ofstream,必须使用编译指令using或前缀std::。

E,        需要将ofstream对象与文件关联起来。为此,方法之一是使用open()方法。

F,        使用完文件后,应使用方法close()将其关闭。

G,       可结合使用ofstream对象和运算符<<来输出各种类型的数据。

 

8,        读取文本文件

A,       必须包含头文件iostream。

B,       头文件iostream定义了一个用处理输入istream类。

C,       头文件iostream声明了一个名为cin的istream变量(对象)。

D,       必须指出名称空间std;例如,为引用元素cin,必须使用编译指令using或前缀std::。

E,        可以结合使用cin和运算符>>来读取各种类型的数据。

F,        可以使用cin和get()方法来读取一个字符,使用cin和getline()来读取一行字符。

G,       可以结合使用cin和eof()、fail()方法来判断输入是否成功。

H,       对象cin本身被用作测试条件时,如果最后一个读取操作成功,它将转换为布尔值true,否则被转换为false。

文件输出与此极其相似

A,       必须包含头文件fstream。

B,       头文件fstream定义了一个用于处理输入的ifstream类。

C,       需要声明一个或多个ifstream变量(对象),并以自己喜欢的方式对其进行命名,条件是遵守常用的命名规则。

D,       必须指出名称空间std;例如,为引用元素ifstream,必须使用编译指令using或前缀std::。

E,        使用完文件后,应使用close()方法将其关闭。

F,        可结合使用ifstream对象和运算符>>来读取各种类型的数据。

G,       可以使用ifstream对象和get()方法来读取一个字符,使用ifstream对象和getlien()来读取一行字符。

H,       可以结合使用ifstream和eof()、fail()等方法来判断输入是否成功。

I,        Ifstream对象本身被用作测试条件时,如果最后一个读取操作成功,它将被转换为布尔值true,否则,被转换为false。

 

#include <iostream>

#include <fstream>

 

int main()

{

         using namespace std;

         charautomobile[50];

         intyear;

         doublea_price;

         doubled_price;

 

         ofstream outFile;

         outFile.open("carinfo.txt");

 

         cout<<"enterthe make and model of automobile";

         cin.getline(automobile,50);

         cout<<"enterthe model year:";

         cin>>year;

         cout<<"enterthe original asking price:";

         cin>>a_price;

         d_price=0.913*a_price;

 

         cout<<fixed;

         cout.precision(2);

         cout.setf(ios_base::showpoint);

         cout<<"makeand model:"<<automobile<<endl;

         cout<<"year:"<<year<<endl;

         cout<<"wasasking $"<<a_price<<endl;

         cout<<"nowasking $"<<d_price<<endl;

         outFile<<fixed;

         outFile.precision(2);

         outFile.setf(ios_base::showpoint);

         outFile<<"makeand model:"<<automobile<<endl;

         outFile<<"year:"<<year<<endl;

         outFile<<"wasasking $"<<a_price<<endl;

         outFile<<"nowasking $"<<d_price<<endl;

 

         outFile.close();

         return0;

}

 

0 0
原创粉丝点击