我刚从 C++ 开始,我在一些练习题中遇到了一个我不太明白的问题。我需要能够以以下形式从控制台读取一行:
N A B C... etc.
其中 N 是一个数字,以下输入将根据 N 是不同的类型和不同的数量。
我的方法是读取 N,然后根据 N 询问不同的输入。但是我必须在一行中接受所有输入,并且我无法获得任何形式的输入以在单个空格字符后终止。那么在收到一个数字和一个空格字符后,我是否可以继续下一个语句?或者有没有更好的方法来解决这个问题?谢谢是提前。
编辑:
好的,我想我已经弄清楚了,但我并不完全理解它,所以我将不得不研究 istringstream。这就是我所拥有的。
vector<string> words;
string token, text;
getline(cin, text);
istringstream iss(text);
while ( getline(iss, token, ' ') ) {
words.push_back(token);
}
这是一个好方法,还是我应该采取另一种方法?如果有人可以,你能为我解释一下这些台词吗?
while ( getline(iss, token, ' ') )
我猜当它到达一个空格时返回true,同时用所有以前的字符填充令牌?
这让我很困惑。
getline(cin, text);