我正在编写一个程序,要求用户为模拟输入几个参数,但大多数情况下,他们每次都会输入相同的值,所以我希望有某种默认值,这样他们只需按enter键,就会使用该值。
提示符如下所示:
Enter Some Parameter [15]:
因此,他们可以输入任何他们想要的数字,或者只需按enter键使用15。
这是我到目前为止所拥有的
parameter = cin.get();
if(parameter == '\n')
parameter = defaultValue;
它是有效的,但只适用于第一个数字,而且我还会将字符转换为我正在处理的参数的任何类型,而不是用户输入的实际值。
我会用
cin >> parameter;
但这并不能让我以我所描述的方式使用默认值。
有没有人知道我能做什么?
发布于 2011-06-26 20:43:17
您可以尝试使用字符串而不是char,例如:
std::string s;
getline( cin, s );
if( s.empty() ) // user pressed enter
s = defaultValue;
这不适用于第一个数字,而适用于整行
发布于 2011-06-26 20:22:12
您可以使用cin.getline()。如果他们输入了一个有效的参数,则更新该参数;否则只使用默认值。
https://stackoverflow.com/questions/6486485
复制相似问题