C ++如何理解两种输入模式?

时间:2018-06-25 10:48:45

标签: c++

请任何人可以为我解释该代码吗?

#include <iostream>
using namespace std;

int main() 
{
    int j;
    for (int i=0; i<3; i++) {
        cin >> j;
        cout << j << endl;
    }
}

第一种情况 在:
1
2
3
出:
1
2
3

第二种情况 在:
1 2 3
出:
1
2
3

  

C ++如何理解两种模式?

2 个答案:

答案 0 :(得分:1)

输入就是我们所说的基于基于流的。它根本不在看文本行。当寻找int时,它将寻找数字字符,直到找到不是数字的东西为止。

在第一个示例中,当输入为

1
2
3

在读取每个数字之后,它会找到一个换行符\n,它不是数字,因此它表示刚刚读取的数字的末尾,并且工作正常。

在第二个示例中,当输入为

1 2 3

在读取每个数字之后,它会找到一个空格字符,该数字不是数字,因此它表示刚刚读取的数字的末尾,并且工作正常。

这很像C ++编译器读取和解析C ++程序的方式。例如,如果将几乎所有程序都塞在一行中,则程序将运行相同的代码:

#include <iostream>
using namespace std; int main() { int j; for (int i=0; i<3; i++) { cin >> j; cout << j << endl; } }

(但是#include之类的预处理器指令是不同的;它们必须在自己的行上单独存在。)

答案 1 :(得分:-1)

这是一个简单的程序,可从控制台获取输入并进行打印,并在执行前运行3次 cin获取输入并将其存储在j中 cout打印输出并将光标移至换行符 情况1:

  
    

1     1个     2     2     3     3     情况2:     123     123