我正在编写一个程序,要求用户为模拟输入几个参数,但大多数时候他们每次都会输入相同的值,所以我希望有一些默认值,这样他们就可以了按enter键,将使用该值。
提示符如下所示:
Enter Some Parameter [15]:
这样他们就可以输入他们想要的任何数字,或者只需按Enter键即可使用15。
这是我到目前为止所拥有的
parameter = cin.get();
if(parameter == '\n')
parameter = defaultValue;
它可以工作,但仅适用于第一个数字,我最终会使用char转换为我正在使用的参数的任何类型,而不是用户输入的实际值。
我会用
cin >> parameter;
但这不允许我按照我描述的方式使用默认值。
有谁知道我可以做到这一点的方式?
答案 0 :(得分:3)
您可以尝试使用字符串而不是char,例如:
std::string s;
getline( cin, s );
if( s.empty() ) // user pressed enter
s = defaultValue;
这不适用于第一个数字,但适用于整行
答案 1 :(得分:2)
您可以使用cin.getline()。如果他们输入有效参数,则更新参数;否则只使用默认值。