gpt4 book ai didi

c++ - 取多行输入,以逗号分隔,将每行存储到字符串数组中

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:42:44 26 4
gpt4 key购买 nike

这是我将使用的输入类型的示例:(来自标准输入)

Archery,M,TEAM,Archery,Lord's Cricket Ground,1. GOLD,team ITA,Italy
Archery,M,TEAM,Archery,Lord's Cricket Ground,2. SILVER,team USA,United States
Archery,M,TEAM,Archery,Lord's Cricket Ground,3. BRONZE,team KOR,South Korea
Cycling,M,IND,Road,Regent's Park,1. GOLD,Aleksander Winokurow,Kazakhstan
Cycling,M,IND,Road,Regent's Park,2. SILVER,Rigoberto Uran,Colombia
Cycling,M,IND,Road,Regent's Park,3. BRONZE,Alexander Kristoff,Norway
Fencing,F,IND,Foil,ExCeL,1. GOLD,Elisa Di Francisca,Italy
InsertionEnd

正如标题所暗示的那样,我想获取每一行,将其拆分为逗号,并将这些字符串中的每一个存储到一个数组(或字符串 vector )中。然后我想获取数组中的每个项目并将其用作函数的参数。我知道如何阅读多行以及如何拆分字符串,但是当我将这些东西放在一起时,它对我来说并不是很有效。

我的思路:

#include <iostream>
#include <vector>
#include <string>
#include <sstream>

using namespace std;
int main()
{
string line;
stringstream ss(line);

while (line != "InsertionEnd") {

vector<string> array;
getline(ss, line, ',');
array.push_back(line);
addItem(array[0],array[1],array[2],array[3],array[4],array[5],array[6],array[7])
}
}

所以在我得到我的数组后,我想使用我制作的 addItem 函数,它只创建一个运动员结构(采用 8 个参数)。像这样:

myTable.addItem("Archery","M","TEAM","Archery","Lord's Cricket Ground","1. GOLD","team ITA","Italy");

我走在正确的轨道上吗?或者这完全是错误的??谢谢。

注意:我已经测试了 addItem 函数,当您自己输入参数时它可以工作。

最佳答案

你的思路是对的;但是你在代码中犯了一些错误:
- stringstream ss(line); - 您在空字符串上初始化字符串流;您需要先输入该行,然后将其插入到字符串流中。
- array.push_back(line); - 您直接将字符串 line 推送到结果 vector ;你需要先把它分解成它的组成词。


以下代码针对您的问题实现了一个可行的解决方案:

#include <iostream>
#include <vector>
#include <string>
#include <sstream>

using namespace std;

int main()
{
string line;
vector<vector<string>> array;
while ( true )
{
getline ( cin, line );
if ( line == "InsertionEnd" )
{
break;
}

stringstream ss ( line );
string word;
vector<string> vector_line;
while ( getline ( ss, word, ',' ) )
{
vector_line.push_back ( word );
}
array.push_back ( vector_line );
}
}

关于c++ - 取多行输入,以逗号分隔,将每行存储到字符串数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39948319/

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