使用默认值输入模拟参数

时间:2011-06-26 20:19:31

标签: c++ user-input

我正在编写一个程序,要求用户为模拟输入几个参数,但大多数时候他们每次都会输入相同的值,所以我希望有一些默认值,这样他们就可以了按enter键,将使用该值。

提示符如下所示:

Enter Some Parameter [15]: 

这样他们就可以输入他们想要的任何数字,或者只需按Enter键即可使用15。

这是我到目前为止所拥有的

parameter = cin.get();
if(parameter == '\n')
    parameter = defaultValue;

它可以工作,但仅适用于第一个数字,我最终会使用char转换为我正在使用的参数的任何类型,而不是用户输入的实际值。

我会用

cin >> parameter;

但这不允许我按照我描述的方式使用默认值。

有谁知道我可以做到这一点的方式?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用字符串而不是char,例如:

std::string s;
getline( cin, s );
if( s.empty() ) // user pressed enter
     s = defaultValue;

这不适用于第一个数字,但适用于整行

答案 1 :(得分:2)

您可以使用cin.getline()。如果他们输入有效参数,则更新参数;否则只使用默认值。