这里的计数如何变成 5?
How does count become 5 here?
我正在学习在 c++ 中使用 get(( 和 put((。我有以下两个疑问:
-
由于我们处于 while 循环中,为什么我不在我输入字符后立即打印字符,因为在获取后立即放置?
-
为什么计数的值为 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
。 在完成最后一次迭代后,它会检查条件并看到最后一个字符是换行符,这是它终止的时间。
相关文章:
- 警告处理为错误这里有什么问题
- 努力将整数转换为链表。不知道我在这里做错了什么
- 函数何时会在c++中包含stack_Unwind_Resume调用
- Python中的for循环与C++有何不同
- 这里在 Linux 中具有"CreatePipe"和"CreateProcessW"功能吗?
- 我可以在这里替换什么,因为我不能在 C# 中使用隐式变量的 lambda 函数?
- 当我从下面的代码中删除关键字 virtual 时,它可以正常工作,否则会出现错误。在这里"virtual"字的意义是什么?
- 为什么 -1 在 C++ 中变成 -842150451?
- File.cpp.o:OpenPose 标志 CMakeFiles/.. 的多重定义/main.cpp.o:首先在这里定
- 为什么thread_local变量在这里从未初始化?
- 为什么我必须在这里使用dynamic_cast
- 在C++中释放内存期间,迭代器与指针有何不同
- C++ - 为什么这里需要'template'关键字?
- 这里的计数如何变成 5?
- 在这里,当我们比较 if(vc[i]==vc1[i]) 时,它是向量数组. 实际上比较的值是多少,
- 这里的 = 运算符有什么用法?
- 这里的字符串函数是什么意思
- 我正在尝试使用 while 循环从字符串中删除字母,直到没有字母。我在这里做错了什么?
- 为什么 C++20 中的 [[可能]] 属性在这里引发警告?
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?