0
If program wants an integer value, what if user enters string
Idk could i explain my issue well, if i need to give you an example; i was making a tic tac toe game and I did this to control the input. //some codes ... int x,y, control = 0; while (control == 0) { cin>> x >> y; if ( //statement for checking if the place of table is empty and values are valid) else //display its not empty ... //some codes but this is not checking the if user enters string value or enters nothing Is my code right ? Should I do this with try except? if yes how?
2 ответов
+ 2
You may use a try ... catch block and/or check for the failbit, if it has been set :
Eg :
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
// Variables to overwrite to.
while(true) // Use an Infinite loop
{
cin>>a>>b;
// Try to Read values for a and b.
if(cin.fail()||cin.bad())
// If the input failed...
cout<<"Wrong Input!\n";
else break; // We are done, go back.
// Reset the Input Buffer conditions.
cin.clear(); // Clears set bits.
cin.ignore(numeric_limits<int>
::max()); // Remove \n's
}
cout<<a<<" "<<b;
// Do other stuff.
}
+ 1
when u made the variable, you put int. if user inputs a string, it would cause a conversion exception and crash the program. so instead, make another string variable and check if it contains a number, then assign the int variable rhe value of the string variable