从0.1开始的C++ Note 01

该笔记包括简单的输入输出(含std::endl\n的区别)、控制语句(含区分前(后)缀递增(减)运算符)。

输入输出

使用iostream

一个示例程序:

#include <iostream>

int main()
{    
    std::cout << "Enter two numbers:" << std::endl;
    int v1 = 0, v2 = 0;
    std::cin >> v1 >> v2;
    std::cout << "The sum of" << v1 << "and" << v2
              << "is" << v1 + v2 << std::endl;
    return 0;
}

std::endl\n的区别

对于一个输出程序可有:

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

也可有:

#include <iostream>

int main()
{
    std::cout << "Hello World!<<std::endl";
}

区别在于std::endl的效果是结束当前行,并刷新缓冲区。这可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不仅仅停留在内存中,等待写入流。
另一方面,在没有必要刷新输出流的时候应当尽量使用cout<<'\n',否则可能会影响程序执行效率。

Warning from Primer: 程序员常常在调试时添加打印语句。这类语句应当保证“一直”刷新流。否则,如果程序崩溃,输出可能还留在缓冲区,从而导致程序崩溃位置的错误推断。

控制流

一段典型的while语句:

#include <iostream>

int main()
{
    int sum = 0, val = 1;
    while (val <= 10) {
        sum += val;
        ++val;

    }
    std::cout<<"Sum of 1 to 10 inclusive is " << sum <<std::endl;
    return 0;
}

复合运算符+=sum += val等价于sum=sum+val
前缀递增运算符++++val等价于val=val+1

前(后)缀递增(减)运算符

前缀:先计算后赋值;
后缀:先复制后计算;
在单独使用时,无影响:

#include <iostream>

int main()
{
    int i = 0, j = 0;
    while (i <= 5) {
        i++;
        ++j;
        std::cout << "i = " << i << std::endl;
        std::cout << "j = " << j << std::endl;
    }
}

输出均为1,2,3,4,5,6
前缀递增运算符:

#include <iostream>

int main()
{
    int i = 0;
    while (i <= 5) {
        std::cout << ++i << std::endl;
    }
}

输出1,2,3,4,5,6
后缀递增运算符:

#include <iostream>

int main()
{
    int i = 0;
    while (i <= 5) {
        std::cout << i++ << std::endl;
    }
}

输出0,1,2,3,4,5
前缀递减运算符:

#include <iostream>

int main()
{
    int i = 5;
    while (i >= 0) {
        std::cout << --i << std::endl;
    }
}

输出4,3,2,1,0,-1
后缀递减运算符:

#include <iostream>

int main()
{
    int i = 5;
    while (i >= 0) {
        std::cout << i-- << std::endl;
    }
}

输出5,4,3,2,1,0

一段典型的for语句

#include <iostream>

int main()
{
    int sum = 0;
    for (int val = 1; val <= 10; ++val)
        sum += val;
    std::cout<<"Sum of 1 to 10 inclusive is " << sum <<std::endl;
    return 0;
}

读取数量不定的输入数据

#include <iostream>
int main()
{
    int sum = 0, value = 0;
    // 读取数据直到文件尾
    while (std::cin >> value)
        sum += value;
    std::cout << "Sum is:" << sum << std::endl;
    return 0;
}

Note from Primer:从键盘输入文件结束符。
Windows:先Ctrl+Z然后Enter键;
UNIX或Mac OS X:Ctrl+D。

if语句

if (condition) {
    statements
}

作者: 公子小白

SOS团团员,非外星人、未来人、超能力者。。。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注