我正在做一个简单的程序,它包含一个while循环,它读入两个整数然后打印出来。我的问题是,当用户输入字符“|”时,如何退出程序?这是一个非常简单的小程序:
int main()
{
int var1 = 0;
int var2 = 0;
while(cin>>var1>>var2)
{
cout << var1 << " " << var2 << endl;
}
return 0;
}
我知道你可以为getline定义一个完全符合我想做的参数,但我不知道如何在while循环中实现它。谢谢你的帮助。
答案 0 :(得分:3)
一旦有人输入了某些内容,你的循环就会退出istream不能&lt;&lt;成一个整数。无论如何专门退出|,我会像这样使用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样式输入或复杂的行解析。
答案 1 :(得分:0)
您所要做的就是检查输入的值是否为|在if-block中然后使用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
答案 2 :(得分:0)
如上所述,如果用户输入|
,您将退出循环。要么
其他任何不能被解释为int
的事情
跳过领先的白色空间。)
如果你想要更精确的控制,你必须阅读 line(和解析行),或逐个字符(和构建 价值观。)