Advertisement

C++ Primer Plus 第六章 分支语句和逻辑运算符

阅读量:

分支语句和逻辑运算符

if语句


和c语言一样

if else 语句

同上

逻辑表达式

在C语言中包含三类布尔操作符:OR操作(||)、AND操作(&&)以及NOT操作(!),而Python可以直接使用OR(or)、AND(and)以及NOT(not)

其中,在||与逗号之间都是一种操作优先级点。即在进行操作时会先计算左边的操作数再处理右边的操作数。值得注意的是,在这种情况下如果左边的操作结果为真,则右边的操作将不会被执行。

&&同理

逻辑运算符and与or在优先级上均低于关系运算符;而逻辑非运算符!在优先级上超过了所有的关系以及算术运算符

and的优先级高于or

! > … > and > or

其中 and or 和 not 也是C++中的保留字,所以&& || !可以用and or not 代替。

字符函数库 cctype


isalpha(ch)

如果ch 是一个字母,则该函数返回一个非零值,否则返回0.

ispunct(ch)

如果ch 是标点符号,则该函数返回true。

其余函数在C++ primer plus P148

?:运算符


复制代码
    A = expression1 ? expression2 : expression3
    //类似于Python的 expression2 if expression1 else expression3

switch 和 if else

和C相似

break 和 continue

和C相似


读取数字

对于:

复制代码
    int n;
    cin >> n;

如果用户输入一个字母,将有:

  • n的值不发生变化
  • 未匹配的输入会被保留在输入队列中
  • 一个错误标记被设置在cin对象中
  • 使用该方法会导致程序返回false

如果要继续输入则:

  • 重置cin以接受新的输入。
  • 删除错误的输入。
  • 提示用户再输入。
复制代码
    cin.clear();
    while(cin.get() != '\n')
        continue;

简单的文件输入/输出

  • 包括头文件 fstream
    • 宣布若干个 ofstream 类型的变量(对象)
    • 指定 std 资域
    • 通过 open() 方法将 ofstream 对象与之相关联
    • 处理完成后利用 close() 方法关闭相关文件
复制代码
    ofstream outFile;
    ofstream fout;
    outFile.open("fish.txt");
    char filename[50];
    cin >> filename;
    fout.open(filename);

该方法仅接受一个遵循C=风格的字符串作为参数。这也意味着该字符串既可以以字面形式直接给出(即为显式字符串),也可以以存储于数组中的形式提供(即为隐式引用)。

ofstream对象能够继承和应用cout所拥有的各种功能。不仅可以通过运算符<<进行操作,还可以通过多种格式化方法实现不同的输出效果,请注意例如setf()和precision()等函数的使用。

请注意:当打开现有文件时,默认情况下其长度会被自动缩短至零;因此原先保存的内容可能会被丢失

读取文件:

ifstream对象能够通过open()方法与文件建立关联,并进而可调用get()和getline()"来逐行读取文件内容。

复制代码
    ifstream inFile;
    ifstream fin;

创建一个ifstream对象并与该文件建立关联后,类似于通过 cin 操作它。任何可用于 cin 的功能和操作都适用于 ifstream 对象。

使用is_open()检查文件是否成功打开:

复制代码
    inFile.open("bowling.txt")
    if (!inFile.is_open())
    {
        exit(EXIT_FAILURE);
    }

exit()用于终止程序。good()方法也可以用于检测文件是否打开。

eof()方法用于判断是否达到了结束输入的状态,请确保在处理数据时注意可能出现的结束标志情况。fail()函数则会检测上一次操作是否出现了数据类型不符的情况,并根据结果返回相应的布尔值。

全部评论 (0)

还没有任何评论哟~