C++ 用户输入特殊字符时如何退出程序

C++ 用户输入特殊字符时如何退出程序,c++,cin,C++,Cin,我现在正在做一个简单的程序,它包含一个while循环,读入两个int,然后打印出来。我的问题是,当用户输入字符“|”时,如何退出程序?这是一个超级简单的小程序: int main() { int var1 = 0; int var2 = 0; while(cin>>var1>>var2) { cout << var1 << " " << var2 << endl; }

我现在正在做一个简单的程序,它包含一个while循环,读入两个int,然后打印出来。我的问题是,当用户输入字符“|”时,如何退出程序?这是一个超级简单的小程序:

int main()
{
    int var1 = 0;
    int var2 = 0;

    while(cin>>var1>>var2)
    {
        cout << var1 << " " << var2 << endl;
    }

    return 0;
}
intmain()
{
int var1=0;
int var2=0;
而(cin>>var1>>var2)
{

cout您所要做的就是检查输入的值是否在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 main(){
字符c;
对于(;;){
printf(“\n按任意键,Q退出:”;
//转换为字符值
scanf(“%c”、&c);
如果(c=='Q')
打破
}
}//循环仅在按下“Q”时退出

您所要做的就是检查输入的值是否在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 main(){
字符c;
对于(;;){
printf(“\n按任意键,Q退出:”;
//转换为字符值
scanf(“%c”、&c);
如果(c=='Q')
打破
}
}//循环仅在按下“Q”时退出

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

如果你想要更精确的控制,你必须逐行阅读 行(并解析行),或逐个字符(并构建
如果用户输入
|
,您将退出循环。或者 不能解释为
int
(之后)的任何其他内容 跳过前导空格)

如果你想要更精确的控制,你必须逐行阅读 行(并解析行),或逐个字符(并构建
向上调整值)。

一旦有人输入istream cannot>var1>>var2,您的循环就会退出;
cout一旦有人进入某个istream cannot>var1>>var2,您的循环就会退出;
当var1或var2(被读取后)包含管道字符时,您会问如何终止循环吗?我怀疑不会-可能会描述您想要什么,并提供更详细的示例输入。您会问当var1或var2(被读取后)如何终止循环吗是否包含管道字符?我怀疑没有-也许可以用更详细的示例输入描述您想要的内容。非常感谢您的回答!但当我在编译器中输入此字符时,会出现错误:错误C3867:'std::ios_base::good':函数调用缺少参数列表;使用“&std::ios_base::good”创建指向成员的指针,致命错误C1903:unable要从以前的错误中恢复@bobiscool cin.good是一个函数,应该是cin.good()。很抱歉,我是在脑子里写的。我现在没有权限使用编译器:),我现在将更改我原来的帖子代码现在运行,但是当我输入两个整数时,它会在屏幕上打印无限量的0,而我不能输入任何其他内容,这是为什么?@Avram:提取块。但是test
cin
not
cin、 good()
。if(c==|)
部分是什么?非常感谢您的回答!但是当我在编译器中输入这一部分时,我得到了错误:错误C3867:'std::ios_base::good':函数调用缺少参数列表;使用“&std::ios_base::good”创建指向成员的指针,致命错误C1903:无法从以前的错误中恢复@bobiscool cin.good是一个函数,应该是cin.good()。很抱歉,我是在脑子里写的。我现在没有权限使用编译器:),我现在将更改我原来的帖子代码现在运行,但是当我输入两个整数时,它会在屏幕上打印无限量的0,而我不能输入任何其他内容,这是为什么?@Avram:提取块。但是test
cin
not
cin、 good()
。如果(c==|)
部分是什么?