这里的计数如何变成 5?

How does count become 5 here?

本文关键字:何变成 这里      更新时间:2023-10-16

我正在学习在 c++ 中使用 get(( 和 put((。我有以下两个疑问:

  1. 由于我们处于 while 循环中,为什么我不在我输入字符后立即打印字符,因为在获取后立即放置?

  2. 为什么计数的值为 5 而不是 4?当我按 Enter 键时,我将退出循环(至少这是我理解的(。因此,当循环结束时,我们有count = 4。

这是代码:

#include<iostream>
using namespace std;
int main() {

int count = 0;
char ch;

cout << "Input textn";

while(ch != 'n') {

cin.get(ch);
cout.put(ch);
count++;
}

cout << endl << count;

return 0;
}

非常感谢任何形式的帮助。请认为我是C++的初学者。谢谢。

循环首先进入cin.get(),直到您输入所有 4 个字符才会继续。它必须有一条新线才能继续。输入所有 4 个字符后,循环将继续并逐个读取字符。

count的值为 5,因为当您输入新行时,它也会递增。新台词也是一个角色。您的输入不是abcd而是abcdn。 在完成最后一次迭代后,它会检查条件并看到最后一个字符是换行符,这是它终止的时间。