Char数据类型和while循环
Char data type and while loop
#include<iostream>
using namespace std;
int main ()
{
char txt;
cout << "Enter text (Enter '.' to quit)";
while ( txt != '.')
{
cin >> txt;
cout << txt;
}
return 0;
}
我是c++初学者。在课堂上,我们被告知char
只包含一个字符。然而,当我在while
循环中插入cin << txt
时,它突然可以使用多个字符。char
现在怎么可能突然存储多个字符?有人能提供一个链接,我可以阅读更多关于这个?
Char不能接受多个值。你的while循环逻辑使它看起来,它接受多个值作为输入,然后返回作为输出。假设类似的输入是:hello。所以执行就像这样
-
char变量将h作为输入,然后h作为输出。
-
后接e &直到……,然后while循环停止。
所以实际上它连续做一个字符的输入一个字符的输出这让你看起来像一个字符串
如果你想看到详细的工作,那么使用调试工具来理解或在输入,输出之间插入延迟&下一个迭代。
这里发生的事情是,当您输入字符时,您只输入一个字符,但字符串中的所有其他字符都留在缓冲区中。如果您更改:
cout << txt;
cout << txt << 'n';
则打印该字符,然后是换行符。您将看到每行上的单个字符。
希望有帮助!
char = char 1只保存c++中最小的数据类型bool的字节。
在你的例子中:你输入一个文本而不是一个单一的字符,所以实际上这个文本被缓冲在cin的缓冲区中,然后刷新为txt。TXT是一个字符,所以它把第一个字符赋给它。但是缓冲区仍然包含其他字符,只要您处于无限条件循环中,cin将第二个字符分配给TXT,而不是前一个字符,直到最后一个字符。
来获取我所说的将cout从内部循环中移除并将其置于外部:
char txt;
cout << "Enter text (Enter '.' to quit)";
while ( txt != '.')
cin >> txt;
cout << txt; // you'll get only the last character '.'
的原因:
假设你输入:"Hello。"它等于:
cin>>txt; // H
cin>>txt; // e
cin>>txt; // l
cin>>txt; // l
cin>>txt; // o
cin>>txt; // .
现在文本文件被赋值为'。
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- while循环中while循环的时间复杂度是多少
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 擦除while循环中迭代的元素
- 为什么我不能在 while 循环中创建线程?
- 退出简单while循环时出现问题
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 嵌套While循环不起作用(C++问题)
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 使用 GMP 的 while 循环出现问题
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 为什么在 while 循环中返回表达式不起作用
- 如何使用 do while 循环确定最高值和最低值
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 用于在 C++ 中使用 while 循环查找下一个素数的简单函数
- OpenCV QT,显示视频的帧(不使用while循环)
- 输入循环 while 函数
- c++中的循环(while)
- 为什么这段代码没有循环(while)