首页 > 解决方案 > 确定用户字符输入c ++的结束

问题描述

我想处理用户输入,这是一行字符串。使用字符串库很简单cin >> mystring;,但出于性能原因,我想一次处理一个字符而不保存以前的字符或使用任何类型的数组。所以我写了这段代码:

char myc;
while(cin >> myc){
   dosomething(myc);
}

但是在写入一行字符串作为输入并按 Enter 后,它会处理输入字符并仍然等待更多输入字符的到来。我也用过cin.eof()while(myc)但没有一个有效。

标签: c++

解决方案


您必须检查换行符,但您不能这样做,std::istream::operator>>因为它被格式化为读取并跳过换行符。利用

char myc;
while ((myc = cin.get()) != '\n')
   dosomething(myc);
}

推荐阅读