C++ Primer Plus 第五章 循环和关系表达式

本文详细探讨了C++中的循环结构,包括for、while循环的使用,以及++和--操作符的影响。同时讲解了复合语句、逗号运算符的用法,和字符串比较的方法。此外,还介绍了库ctime中的clock()函数,typedef的用途,以及基于范围的for循环。文章还涵盖了cin输入的处理,文件结尾的检测,并提供了二维数组初始化和嵌套循环的示例。
摘要由CSDN通过智能技术生成

循环和关系表达式

for循环


和c语言类似,可以将第一个参数改为int i = 0;

++ and –

    y = 2 * x++ * (3- ++x);

不同编译器的结果不同,尽量不要写类似语句

复合语句(代码块)


如果在语句块中定义一个新的变量,则晋档程序执行该语句块中的语句时,该变量才存在。

如果在语句块中声明外部已有的变量,新变量将隐藏旧变量。

逗号运算符


for循环中第三个参数:

    for(i = 0;i < N;i++,j--){
        body;
    }

逗号具有顺序性,先计算前面的。逗号运算符的优先级是最低的。

字符串比较


c语言strmp(str1,str2)

string类,直接使用==比较即可

while循环


和c一样

for循环可以省略条件,这样条件看做true,但是while不能这么做。

库ctime


包含有clock()函数,可以返回时间。clock_t作为其返回类型。

clock()返回数值除以CLOCKS_PER_SEC结果的单位为秒

typedef


    typedef typeName aliasName;

    typedef char * byte_pointer;

基于范围的for循环


示例:

    double prices[5] = {4.99,10.99,6.87,7.99,8.49};
    for (double x : prices)
        cout << x << std::endl;
    //类似于python
    for(double &x : prices) //&x是引用
        x = x * 0.80;
    //不同与Python,可以修改引用变量的值,而python不可以
    for(int x : {3, 5, 2, 8, 6})
        cout << x << ' ';
    cout << '\n';

cin输入


    cin.get(); //读取一个字符,返回这个字符
    
    cin.get(char); //读取一个字符,并赋予char中

    cin.get(name,ArSize); //读取ArSize个字符,赋予name中

C++函数的重载

文件的结尾

在Unix或者windows命令提示符模式下,有重定向运算符,可以把文本文件输入到程序中

    gofish < fishtale

许多PC环境都把Ctrl+Z视为模拟的EOF。

在windows下,可以使用Ctrl+Z和回车来模拟输入EOF。(在linux中,Ctrl+Z是指将程序挂起,通过fg命令恢复)

如果检测到EOF时,cin将eofbit和failbit都设置为1,可以通过cin.eof()来检查eofbit是否被设置

检测到EOF时,cin.eof()将返回true.

如果程序检测到EOF,所有的cin输入的命令都将会被跳过,需要使用cin.clear()来恢复

在某些系统中,Ctrl+Z将结束输入输出,即便使用cin.clear()也没有作用

嵌套循环和二维数组


初始化二维数组

    int maxtemps[4][5] = //2-D array
    {
        {...}
        {...}
        {...}
        {...}
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值