当用户输入一个特殊字符时如何退出程序

How to exit a program when user inputs a special character

本文关键字:特殊字符 退出程序 一个 输入 用户      更新时间:2023-10-16

我目前正在做一个简单的程序,它由一个while循环组成,读入两个int型,然后将它们打印出来。我的问题是,当用户输入字符"|"时,我如何退出程序?这是一个超级简单的小程序:

int main()
{
    int var1 = 0;
    int var2 = 0;
    while(cin>>var1>>var2)
    {
        cout << var1 << " " << var2 << endl;
    }
    return 0;
}

我知道你可以为getline定义一个参数来做我想做的事情,但我不知道如何在while循环中实现它。谢谢你的帮助。

只要有人输入了istream不能输入的内容,循环就会退出<<转换成整数。无论如何,要在|处退出,我将使用peek函数:

int main()
{    
  int var1 = 0;    
  int var2 = 0;
  while( cin.good() )
  {
    char c;
    c = cin.peek();
    if( c == | )
      break;
    else
    {
      cin >> var1 >> var2;
      cout << var1 << " " << var2 << endl;
    }
  }
  return 0;
}

避免使用c风格的输入或复杂的行解析。

您所要做的就是检查在if块中输入的值是否为|,然后使用break关键字停止循环。

像这样的行:

#include <stdio.h>
int main() {
    char c;
    for(;;) {
        printf( "nPress any key, Q to quit: " );
        // Convert to character value
        scanf("%c", &c);
        if (c == 'Q')
            break;
    }
 } // Loop exits only when 'Q' is pressed

如前所述,如果用户输入|,您将退出循环。或任何其他不能解释为int(之后)的内容>

如果你想要更精确的控制,你必须逐行读取行(并解析该行),或逐个字符(并构建)