0

编程新手在这里。我试图允许用户在控制台的一行中输入他们的名字,firstName middleName lastName(例如“John Jane Doe”)。我想将 middleName 设为可选。因此,如果用户输入“John Doe”,它只会保存名字和姓氏字符串。如果用户输入“John Jane Doe”,它将保存所有三个。

我打算用这个:

cin >> firstName >> middleName >> lastName;

然后我意识到,如果用户选择省略他们的中间名并输入“John Doe”,控制台将等待用户输入第三个字符串......我知道我可以用一个大字符串完成此操作并将其分解为两个或三个,但是没有更简单的方法来使用上面的三个字符串吗?

我觉得我在这里错过了一些简单的东西......

提前致谢。

4

1 回答 1

5

使用getline然后使用stringstream.

#include <sstream>

string line;
getline( cin, line );
istringstream parse( line );

string first, middle, last;
parse >> first >> middle >> last;
if ( last.empty() ) swap( middle, last );
于 2010-04-29T07:04:12.010 回答