繁体   English   中英

用回车退出一段时间(cin >> s)循环

[英]Exitting a while(cin >> s) loop with a carriage return

是否可以while(cin >> x)退出循环while(cin >> x)其中x是一个char一旦用户点击进入而不是创建另一个错误标志,如标点符号或EOF - Ctrl + Z?

我正在使用while(cin >> x)而不是cingetline因为我想逐个读取包含空格的字符。

还有另一种方法可以逐个读取字符并使用enter作为终止标志吗?

我尝试使用带有\\r\\nif语句,但它不起作用。

我将不胜感激任何帮助。

当然,一次只读一个字符并检查它们:

char x;
while (cin.get(x) && x != '\n') {
  // ...

您需要使用cin.get(x)而不是cin >> x因为您实际上想要读取像换行符这样的空格字符,默认情况下哪个operator >>跳过。

例如,尝试使用getch

c = null
 while(c != 0x0D) //0x0D for Carriage Return
 {
    c = getch();
 }

更多详情

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM