0

嘿伙计们,我有一个关于将输出存储到变量的问题。假设我有 3 个变量定义如下:

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"。一开始我不想要这个空间。我该如何做到这一点?

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

4

1 回答 1

3

您可以使用跳过空格std::ws

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

您可以在这里看到一个实时工作示例:忽略前导空格

于 2013-05-06T03:06:21.190 回答