C++ 在C+中解析/拆分数据+;
我从带有头部和尾部的传感器发送6个数据,数据之间有(,)C++ 在C+中解析/拆分数据+;,c++,parsing,C++,Parsing,我从带有头部和尾部的传感器发送6个数据,数据之间有(,) $data0,data1,data2,data3,data4,data5%. 我想解析/排序此数据并成为: y0=data0 y1=data1... 怎么做?我使用Visual Studio C++ 2010。 我的计划是: #include <iostream> #include <string> #include <sstream> #include "stdafx.h" using names
$data0,data1,data2,data3,data4,data5%.
我想解析/排序此数据并成为:
y0=data0
y1=data1...
怎么做?我使用Visual Studio C++ 2010。
我的计划是:
#include <iostream>
#include <string>
#include <sstream>
#include "stdafx.h"
using namespace std;
int main()
{
string str = "$data1,data2,data3,data4,data5,data6%";
string word;
stringstream stream(str);
while( getline(stream, word, ',') )
cout << word << "\n";
}
如何删除头和尾,以及如何在缓冲区中创建数据
Y1=data1
y2=data2
...
此代码显示了如何执行此操作:
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main() {
std::string s("$data0,data1,data2,data3,data4,data5%");
s.erase(0, 1); // Remove header.
s.erase(s.size() - 1, 1); // Remove tail.
// Parse tokens.
std::vector<std::string> tokens; // Vector will store tokens.
std::istringstream iss(s);
for (std::string token; std::getline(iss, token, ',');) {
tokens.push_back(token);
}
// Output tokens.
for (const auto& t : tokens) {
std::cout << t << std::endl;
}
}
请张贴您迄今为止尝试过的内容。如果您是编程新手,那么将为您提供一个良好的起点。@Limavolt如果您正好有6个条目,则可以执行
std::string y0=tokens[0]代码>等等
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main() {
std::string s("$data0,data1,data2,data3,data4,data5%");
s.erase(0, 1); // Remove header.
s.erase(s.size() - 1, 1); // Remove tail.
// Parse tokens.
std::vector<std::string> tokens; // Vector will store tokens.
std::istringstream iss(s);
for (std::string token; std::getline(iss, token, ',');) {
tokens.push_back(token);
}
// Output tokens.
for (const auto& t : tokens) {
std::cout << t << std::endl;
}
}
data0
data1
data2
data3
data4
data5