C++回炉之_C++PrimerPlus_第六章 分支语句和逻辑运算符

本文介绍了C++中的if语句、逻辑表达式、switch语句等控制结构的使用方法,包括条件判断、逻辑运算符的优先级及替代关键字。此外,还详细讲解了如何利用fstream库进行文件的读写操作。

if语句

if(test) statement;
if(a > b) cout << a << endl;
if(test) { 
    statement_1; 
}
else {
    statement_2;
}
if(test_1) { statement_1; }
else if(test_2) { statement_2; }
else { statement_3; }

逻辑表达式

  • 逻辑或(OR) – || – 两者都是 false 才为 false

    a > b || a > c
  • 逻辑与(AND) – && – 两者都是 true 才为 true

    a > b && a > c
  • 逻辑非(NOT) – ! – 取相反的值

    a
  • 优先级
    • AND 和 OR 运算符低于关系运算符
    • NOT运算符高于关系运算符
    • AND 高于OR 运算符
    • OR < AND < 关系运算符 < NOT
    • C++中 可用 and or not 代替 && || ! – C语言需要包含iso646.h
  • :?运算符

    a > 0 ? a : 0;
    // 意思是如果a > 0true , 则取冒号前面的a , 否则取后面的0

< cctype >

  • 确定字符的类型 – 大小写 数字 标点 空格 等
    • isalpha(ch) 是否为字符
    • isdigit(ch) 是否为数字
    • isspace(ch) 是否为空格
    • ispunct(ch) 是否为标点
    • isupper(ch) 是否为大写 – toupper()转为大写
    • islower(ch) 是否为小写 – tolower()转为小写
    • isalnum(ch) 是否为字母或数字

switch语句

switch (int_expr) {         // 值为整数的表达式
    case num_1 : statement_1;
    case num_2 : statement_2;
    ...
    default : statement_default;

}
  • 条件分支大于3时比if-else 语句好用
  • 每一个case 都可以用break 跳出, 但是没有break 的将继续执行后面的语句
  • 可使用枚举量作为标签在switch语句中使用 – 会自动提升为int型

break 和 continue

  • break 直接跳出循环体
  • continue 跳出当前循环体, 并开始新一轮的循环

文本I/O初探

  • 输出到文件

    • 包含 < fstream > 头文件
    • < fstream > 定义了一个用于处理输出的 ofstream 类
    • 需要自己声明一个或多个ostream类对象
      • 使用此对象打开(.open()), 关闭(.close()), 输出(<<) 文本到文件
    
    #include <iostream>
    
    
    #include <fstream>
    
    using namespace std;
    
    int main() {
    
        ofstream fout;              // 声明此类对象
        fout.open("out.txt");       // 打开文件
        fout << "hello world\n";    // 输入
        fout.close();               // 关闭文件
    
        return 0;
    }
    
  • 从文件中读取

    • 包含 < fstream > 头文件
    • 需要声明一个或多个 ifstream 类型的对象
      • 使用此对象进行打开(.open()) , 关闭(.close()) 和 读取( >> .get() 或 getline()等)
    • 需要正确设计读取循环,以读取到正确的内容
      • 遇到EOF时, 方法 eof() 将返回true
      • 遇到EOF 或 类型不匹配时, 方法 fail() 将返回true
      • 最后一次读取文件时发生文件受损或硬件错误,方法 bad() 将返回true
      • 没有发生任何错误时, 方法 good() 将返回 true – 对于上一次输入而言 (一般在前面有一条输入)
    
    #include <iostream>
    
    
    #include <fstream>
    
    
    #include <cassert>
    
    using namespace std;
    
    int main() {
    
        ifstream fin;
        fin.open("in.txt");
        if(!fin.is_open()) {  assert(0); }      // 检测是否成功打开
    
        int x;
        fin >> x;                               // 从文件中读取
        cout << x << endl;
    
        fin.close();
        return 0;
    
    }
    
源码链接: https://pan.quark.cn/s/a4b39357ea24 斐讯K2是一款广受用户青睐的无线路由器,其运行表现稳定且具备较高的可操作性,在DIY爱好者群体中拥有极高的声誉。本资料将系统性地阐述斐讯K2的固件刷机方法及其关联的技术要点。固件升级是路由器爱好者改善设备性能、扩展功能的一种普遍手段,经由替换出厂固件,能够达成更加个性化的网络配置、增强安全防护等目标。斐讯K2固件资源库涵盖了多种知名的非官方固件,诸如Tomato Pheonix 不死鸟、高恪、PandoraBox 潘多拉等,这些固件均具备独特的优势,能够适配不同用户的需求。 1. Tomato Pheonix 不死鸟:Tomato是一款立足于Linux的开源固件,以其精巧、高效而备受推崇。不死鸟版本是专门为华硕及斐讯路由器优化的分支,提供了卓越的QoS(服务质量)配置、详尽的图表监控以及便捷的固件升级途径。对于那些需要精准调控带宽监测网络状态的用户而言,这是一个理想的选项。 2. 高恪:高恪固件是OpenWrt的定制化版本,着重于操作的便捷性运行的可靠性,特别适合对路由器操作不甚熟悉的用户群体。它提供了一些实用的功能,例如内置的广告屏蔽、快速测速工具等,同时保留了OpenWrt的适应性。 3. PandoraBox 潘多拉:潘多拉盒是另一款基于OpenWrt的固件,它以丰富的插件库强大的自定义潜力而闻名。用户能够依据个人需求安装各类插件,实现更多功能,如远程接入、DDNS(动态域名解析服务)等。 4. 官方固件的纯净版本与定制版本:官方固件通常更侧重于稳定性,纯净版意味着未预置额外的应用或服务,适合注重稳定性的用户。定制版则可能包含了制造商的特色功能或优...
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值