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

时间:2014-03-16 12:35:47

标签: c++

一旦用户点击输入而不是创建标点符号等其他错误标记,是否可以退出while(cin >> x) x char的循环EOFwhile(cin >> x) - Ctrl + Z?

我使用的是cin而不是getlineif因为我想逐个读取字符,包括空格。

是否有另一种方法可以逐个读取字符并使用输入作为终止标记?

我尝试在\r\n上使用{{1}}语句,但它不起作用。

我将不胜感激。

2 个答案:

答案 0 :(得分:2)

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

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

您需要使用cin.get(x)而不是cin >> x,因为您实际上想要读取空行字符,例如新行,operator >>默认跳过。

答案 1 :(得分:0)

尝试使用getch,例如

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

More detail