Quote (Minkomonster @ Mar 2 2014 12:46am)
you dont need multiple cin >> answer statements. The single cin >> answer in the while loops condition is enough.
you could aslo do
Code
int d;
std::cin >> d;
while(std::cin.fail())
{
std::cout<<"You did not enter an integer" << endl;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cin >> d;
}
Code
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double answer; // given movement range
double damage_range = 254.34; // range of grenade
double grenade_explode = 3; // speed of master chief
double speed = 1.5; // movement speed of master chief
double canbackoff; // backed off amount
double can_damage; // variable denoting if commander chief is within blast range or not
cout << "Input how far from Commander Chief a grenade falls (yards): ";
while(!(cin >> answer)); // FUCKING FIGURE OUT WHY THIS SHIT IS BUGGING OUT FUCKING MANG -Tony
{
cout << "Error, invalid variable. Please input a number: ";
cin.clear();
cin.ignore(10000,'\n');
cin >> answer;
}
cout << "The damage radius of the grenade is " << damage_range << " yards.\n";
canbackoff = grenade_explode * speed;
cout << "The Commander Chief can back off " << canbackoff << " yards.\n";
can_damage = (grenade_explode * speed) + answer;
if (can_damage > damage_range)
{
cout << "Commander Chief will not get hurt." << endl;
}
else
{
cout << "Commander Chief will get hurt." << endl;
}
system("pause");
return 0;
}
If I enter a number in, that's wrong apparently now. A world/letter freezes it.