c++ - 确定用户字符输入c ++的结束
问题描述
我想处理用户输入,这是一行字符串。使用字符串库很简单cin >> mystring;
,但出于性能原因,我想一次处理一个字符而不保存以前的字符或使用任何类型的数组。所以我写了这段代码:
char myc;
while(cin >> myc){
dosomething(myc);
}
但是在写入一行字符串作为输入并按 Enter 后,它会处理输入字符并仍然等待更多输入字符的到来。我也用过cin.eof()
,while(myc)
但没有一个有效。
解决方案
您必须检查换行符,但您不能这样做,std::istream::operator>>
因为它被格式化为读取并跳过换行符。利用
char myc;
while ((myc = cin.get()) != '\n')
dosomething(myc);
}
推荐阅读
- telethon - 秘密聊天 Telethon 不显示发送的消息
- vim - 使用 `:! 时的颜色编码
` - python - 如何从字典中的列表中删除元组?
- java - 使用正则表达式我怎样才能得到括号内的数字?
- javascript - 如何在一个按钮中触发两个 onClick 事件?
- r - 使用 R/dplyr 过滤列?
- google-cloud-platform - 当我设置我的服务帐户时,gce 的默认服务帐户是否启用?
- c# - C#如何在字符串中的每个大写字符前添加连字符
- python - Python UnboundLocalError,是什么原因造成的?
- python - PyCharm 无法识别“导入随机”(Python 3.8)