输入输出

如果你使用的是 Dev-cpp,将基本框架中的程序拷贝到代码区并按下 F11,你会发现程序已经可以成功地运行了!不过跳出的黑色窗口中没有任何内容——因为我们的 main 函数中什么都没写。我们现在来尝试输出一行 “hello world!":

#include <bits/stdc++.h>

int main ()
{
    std::cout << "Hello World" << '\n'; // don't forget to add ';' at the end!
    return 0;
}

cout 是一个对象 (object),作为初学者我们不需要知道对象是什么意思,一个好的理解方式是:你可以把 “cout” 想象成运行时蹦出的窗口,现在我们的任务是将要输出的内容喂给窗口,这里的 << 就像箭头一样指明了数据的流向,“Hello World” 和代表换行符的 “\n” 依次流入 “cout” 并被显示出来,这就是 cout 的用法,颇有象形文字的智慧。

std:: 这个前缀是什么意思?

std 是一个命名空间 (namespace)。对于初学者来说命名空间的概念太过复杂了,你可以把它当作“头文件”来理解:std 中有很多函数/对象/…可以供我们使用。在使用它们时,为了让计算机知道这个函数/对象/…来自于 std,我们要前面加上 std:: 这个前缀。

一个自然的问题是:我们既然有一个 include 语句包含头文件,那么我们可不可以也用一条语句来“包含” std 从而避免每次使用 std 中的东西都要写 std:: 呢?答案是肯定的,我们可以这样写:

#include <bits/stdc++.h>
using namespace std;

第二行的意思是:在整个程序中我都可以任意地使用 std 这个 namespace 的所有内容,不再需要 std:: 这个前缀。这样写固然方便,但我们仍然推荐新手养成不滥用 using namespace std; 的习惯,因为这样你能够更好地知道哪些函数是头文件中的,哪些函数是 std 中的,这对将来的编程学习很有好处。

一个只能输出的程序没有意思,我们希望程序可以与人类交互,因此我们接下来考虑一个更复杂的例子:输入两个数,输出它们的和。我们直接给出示例代码:

#include <bits/stdc++.h>

int main ()
{
    int a, b, sum;
    std::cin >> a >> b; // don't forget the "std::" prefix!
    sum = a + b;
    std::cout << sum << '\n';
    return 0;
}

这个程序颇为复杂,出现了很多新东西,我们来一一看:

  • 程序中的 a b sum 被称为变量 (variable)。变量可以被理解为一个“小盒子“,里面可以存放一个值。在使用变量前我们需要定义变量,定义的格式是 类型 变量名;,这里我们定义了 int 类型的变量,表示 a b sum 这三个“盒子”里只能存放整数
  • cin 是用于输入的对象。有了 cout 的经验,cin 一行很好理解:我们还是将 “cin” 想象成黑色窗口,当我们输入了两个数字的时候,“cin” 需要将数据喂给变量,因此流符号的方向是 >>
  • sum = a + b; 是一个赋值语句,它的含义是将 ab 中的值加起来,存放到 sum 中,注意该操作不会影响 ab 中的内容。

变量

上述示例代码中定义的是 int 型的变量 (“int"是整数 integer 的缩写)。C++ 为我们提供了很多的变量类型,比如存储小数(浮点数)的 float 类型和 double 类型,存储更大的整数的 long long 类型,存储字符的 char 类型等等,你可以上网搜索这些类型的含义。

除此之外,变量的命名看似自由,其实也有一定的约束条件,比如变量名的第一个字符不能是数字。如果你感兴趣,你也可以上网搜索相关的资料。

Previous
Next