如何将字符串的所有单词写入不同的变量
How to write all words of a string into different variables?
我想获取一行字符串并将每个单词写入它自己的变量中,以便我可以在if子句中使用它们。
我试过了:
cin >> var1;
cin >> var2;
cin >> var3;
cin >> var4;
但这仅在输入 4 个单词时才有效。我需要一种方法来计算单词,因为我不知道用户输入的是 1、2、3、4 个还是更多单词。
也许有一种方法可以获取整个字符串:
getline(cin, string1);
然后把它切成文字。抱歉,我搜索了很多,但找不到方法。
我还尝试将 cinbuffer 写入变量,但我能做到这一点的唯一方法是使用
cin >> varx;
只有当五重物中有一些东西时,这才有用。否则,系统会再次要求用户输入。
编辑:刚刚找到这个,对我有用。无论如何,谢谢!C++ cin 空格问题
你走在正确的轨道上。您可以使用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;
}
像这样将东西写到不同的变量通常是错误的答案。似乎你想要一个类似数组的东西。
听起来你使用getline
http://www.cplusplus.com/reference/string/getline/
然后使用类似 boost split 的东西将每个项目转储到数组中
http://www.cplusplus.com/faq/sequences/strings/split/
相关文章:
- 从字符串变量中逐字符读取单词
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 我有一个字符串变量单词= "APA"
- 如何让变量随机输出四个单词之一
- 如何将行的第一个单词作为一个变量,将行的其余部分作为另一个变量进行归档/存储
- Serial.print in arduino 不写变量
- 在C++中使用多线程时,是否可以读取半写的、损坏的原始变量?
- 我不知道如何用变量写平均成绩
- 如何在先前读取行中找到一些单词并在C 中的输出读/写字符串中删除它
- 将具有多个单词的常量分配给变量
- 如何从 std::istringstream 读取单词而不通过 >> 分配给 tmp 变量?
- 对 std::atomic 变量的更改(读/写)如何在线程之间传播
- 如何将字符串的所有单词写入不同的变量
- 写回全局变量
- C++-全局变量与局部变量的读/写速度
- 取一个包含任意数量单词的字符串,并将这些单词存储在不同的字符串变量中
- 如何将 int 变量转换为 ASCII 单词
- 读/写void*变量的单个字节
- 使用memory_order_relax来加载原子变量是否安全,如果只有一个线程对该变量进行写操作
- 链接公共变量和私有变量(对私有变量进行写访问)