我告诉我,除非必要,否则我应该只使用我的代码中的任何一个,cin或getline。
Cin我被告知会产生异常错误等(不检查输入类型等)
我理解getline()对字符串和字符更灵活,但数字类型如何?我的意思是,我可以将getline字符串解析为数值,但是不是更安全的路线吗?问题是,我应该采用哪种方法进行字符串和数字输入?
int inputReturn(int x);
int defaultValue = 0;
int main()
{
//Getting numerical input w/getline()
string input = "";
while(true)
{
cout << "Enter a value: ";
getline(cin, input);
stringstream myStream(input);
system("CLS");
if(myStream >> defaultValue)
{
system("CLS");
break;
}
cout << "Invalid input. Try again!" << endl << endl;
}
inputReturn(input); //Converted to numeric value, but still type of string (Error)
system("CLS");
return 0;
}
int inputReturn(int x)
{
return x*2;
}
在这个例子中,我将字符串输入解析为数值,然后使用该值作为int的参数,并将字符串的错误获取为int。
所以,问题 - 我应该为这些数据类型使用什么,还是可以同时使用这两种数据类型?
我希望你们理解我的质疑。
答案 0 :(得分:0)
getline()
可以用于数值,但不能用于整数或双精度。
就您而言,可以使用。
还记得#include <string>