2013-05-06 26 views
0

嘿家伙我有一个关于将输出存储到变量的问题。比方说,我定义了3个变量如下:C++:如何将字符串的其余部分存储在变量中?

float num, 
string units, 
string rest; 

和用户在控制台输入此:

12.2 
mg 
Vitamin 

我知道如果我想将它存储在变量,我必须做到以下几点:

cin >> num >> units >> rest; 

但让我们假设用户输入维生素A而不是维生素。

而我想将剩余的字符串mg存储到'rest'变量中。 我该怎么做?

我做了以下内容:

cin >> num >> units; 
getline(cin,rest); //stores the rest of the string into rest 

但这还存储空格字符后mg即如果我输出rest,它会输出" Vitamin A"。一开始我不想要这个空间。我该如何做到这一点?

我知道这很长,但我希望我已经说清楚了。 任何帮助或建议都会有所帮助。 谢谢,

回答

3

您可以通过使用std::ws

cin >> num >> units; 
ws(cin); 
getline(cin, rest); 

跳过空格,您可以在这里看到现场工作示例:ignore leading whitespace

+0

由于它的工作原理 – 2013-05-06 03:12:51

+0

@Cheetahjimi欢迎您。 – taocp 2013-05-06 03:13:19

相关问题