gpt4 book ai didi

c++ - 如何将字符串的所有单词写入不同的变量?

转载 作者:行者123 更新时间:2023-11-30 04:28:11 24 4
gpt4 key购买 nike

我想获取一行字符串并将每个单词写入它自己的变量中,以便我可以在 if 子句中使用它们。

我试过:

cin >> var1;  
cin >> var2;
cin >> var3;
cin >> var4;

但这仅在输入 4 个单词时有效。我需要一种方法来计算字数,因为我不知道用户输入的字数是 1、2、3、4 还是更多。

也许有办法获取整个字符串:

getline(cin, string1);

然后将其切割成文字。抱歉,我搜索了很多,但找不到方法。

我还尝试将 cinbuffer 写入变量,但我能做到的唯一方法是使用

cin >> varx;

只有在 cinbuffer 中有东西时才有用。否则,系统会再次要求用户输入。

编辑:刚找到这个,对我有用。不管怎么说,还是要谢谢你! C++ cin whitespace question

最佳答案

您走在正确的轨道上。您可以使用 getline() 读取一行,然后使用 istringstream 将该行视为它自己的流。将此更改为您碰巧使用的任何类型 T

#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <vector>

int main(int argc, char** argv) {

using namespace std;

vector<T> values;

{
string line;
getline(cin, line);
istringstream stream(line);

// Read values into vector.
copy(istream_iterator<T>(stream), istream_iterator<T>(),
back_inserter(values));
}

cout << "Received " << values.size() << " values:\n";

// Copy values to output.
copy(values.begin(), values.end(),
ostream_iterator<T>(cout, "\n"));

return 0;

}

关于c++ - 如何将字符串的所有单词写入不同的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com