gpt4 book ai didi

c++ - 从 csv 文件中获取不同类型的数据并将其放入 C++ 中的 typedef 结构中

转载 作者:行者123 更新时间:2023-11-27 22:35:00 26 4
gpt4 key购买 nike

我是编程和 C++ 的初学者。

我有一个 typedef struct Player,其中有 5 个玩家作为一个数组,像这样:

typedef struct{ int id_player; string nickname; char initials[4]; int score; }Player; Player players[5];

我有一个 csv 文件,其中包含如下条目:

1002 毒刺 FMH 12980

其中:int id, string, char initials[4], int score由制表符分隔

我必须从 csv 中的每个条目获取数据并填充玩家值。

有类似的问题,但我不知道如何用它们来做,我必须用 C++ 而不是 C。我是初学者,可能是我在做无意义的代码,但我希望我的问题会有用对其他人,请不要给我投反对票。

我正在尝试使用 ostreamstring 输入序列来完成此操作,但我不知道这是否是一个好的方法。我不知道该怎么做。这就是我所拥有的:

#include <iostream>
using std::cin;
using std::cout;
using std::endl;

#include <string>
using std::string;

#include <fstream>
using std::ifstream;
using std::ios;

#include <sstream>
using std::ostringstream;

typedef struct{

int id_player;
string nickname;
char initials[4];
int score;

}Player;

Player players[5];

int main(){

int id_player_aux;
string nickname_aux;
char initials_aux[4];
int score_aux;

string line;

ostringstream entry;

entry << id_player_aux << nickname_aux << initials_aux << score_aux;

ifstream data("test.csv", ios::in);

while(getline(data, line)){

entry << line;



}

return 0;

}

谢谢。

最佳答案

这是一个不同的解决方案:它逐行检索播放器信息,然后在 GetPlayerInformation() 中逐个选项卡将它们存储到 struct 选项卡中。

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;

const char TAB = '\t';

struct struct_player {
int id_player;
string nickname;
string initials;
int score;
};

void GetPlayerInformation(stringstream & stringstream_player, struct_player & player) {
string string_id_player, string_score;

getline(stringstream_player, string_id_player, TAB);
getline(stringstream_player, player.initials, TAB);
getline(stringstream_player, player.nickname, TAB);
getline(stringstream_player, string_score, TAB);

stringstream(string_id_player) >> player.id_player;
stringstream(string_score) >> player.score;
}

int main() {
struct_player player;
string line_player;
ifstream file_players("players.csv");
struct_player players[5];

for(int i = 0; i < 5; i++)
if(getline(file_players,line_player)) {
stringstream stringstream_player(line_player);
GetPlayerInformation(stringstream_player, players[i]);
cout << players[i].id_player << ", " << players[i].initials << ", " <<
players[i].nickname << ", " << players[i].score << endl;
}
}

关于c++ - 从 csv 文件中获取不同类型的数据并将其放入 C++ 中的 typedef 结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55750786/

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