//review3
#include <iostream>
#include <cstdlib>
#include <string>
#include <fstream>
using namespace std;
int number;
int main()
{
cout << "Enter a positive number" << endl;
cin >> number;
while (number < 0)
{
cout << "Enter a positive number" << endl;
}
if (number > 0)
{
cout << "Awesome job!" << endl;
}
return 0;
}
到目前为止,这是我的代码。我开始使用else,但如果用户输入负数,程序就会关闭。我将其更改为while循环并陷入无限循环。之前我有一个if和else if语句。我需要继续提示用户,直到他们在c ++中输入正数。
答案 0 :(得分:3)
您的while()
循环没有继续提示输入,这就是您获得无限循环的原因 - 因为number
永远不会改变!
您可以将输入操作放入while()
循环中,如下所示:
while (cin >> number && number < 0)
{
cout << "Enter a positive number: " << endl;
}
if (cin)
{
cout << "Awesome job" << endl;
}
因此,在循环的每次迭代期间,将提示用户输入。
我们之后检查cin
的状态,以确保上述循环因输入无效(或根本没有输入)而没有停止。
答案 1 :(得分:0)
#include <iostream>
#include <string>
#include <cstring>
int main()
{
while(true)
{
std::cout << "Pleaase enter a positive number." << std::endl;
std::string buf;
int x = -255;
std::cin >> buf;
x = std::atoi(buf.c_str());
if(x > 0)
{
break;
}
}
std::cout << "Awesome Job!" << std::endl;
}
答案 2 :(得分:0)
#include <iostream>
using namespace std;
int number;
int main()
{
cout << "Enter a positive number" << endl;
cin >> number;
if (number < 0) {
cout << "Enter a positive number" << endl;
}
else {
cout << "Awesome job!" << endl;
}
return 0;
}
答案 3 :(得分:0)
答案 4 :(得分:-1)
您也可以执行此代码段。使用#include <ctype.h> or <cctype>
while(1){
cin>>number;
if(number<0 || isalpha(number)) return 0;
cout<<"Awesome Job";
}