首页 新闻 赞助 找找看

是否所有语言的while都能像c++的while能读取stdin缓存内的值?

0
[已解决问题] 解决于 2023-01-29 19:14

如下是设计检测重复字串的代码:

include<iostream>

using namespace std;
int main() {
string previous = " ";
string current;

cin >> current;//输入the cat cat jump
//while(cin>>current)
//{
//	cout << current<<"\n";//能分别输出 cat  cat 及 jump
//}

while (cin>>current)
{

	if (previous == current)
		cout << "repeated word:" << current << "\n";
		previous = current;
}

}

原理是:while 检测 输入current的字串,并将前一个字串储存至previous,如何判断是否current=pervious,若相等输出此相同字串

我输入的字串是 the cat cat jump
当cin读取此字串
由于空格键会将其分成多个字串
先识别the,cat cat jump此三个字串储存在缓存中
等到下一次进行while时识别cat,如此循环

是否其他语言类似Java的while 工作原理也是如此(会读取std缓存内容)
还是说这是c++独有的

笑忘书_1054的主页 笑忘书_1054 | 菜鸟二级 | 园豆:202
提问于:2022-12-07 20:49
< >
分享
最佳答案
0

可参考:https://blog.csdn.net/bravedence/article/details/77282039
原以为是while的原因,看了下这篇博客,发现应该是cin>>的原因;
cin>> 当输入字串包括空格即会被cin>>忽略清楚继续读取下个字符,此时由于while不能一次性全读完
读了the之后执行下面的代码,在进行while判断时,由于此特性,能继续进行第一个cat的判断

笑忘书_1054 | 菜鸟二级 |园豆:202 | 2022-12-08 19:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册