gpt4 book ai didi

C - 将文本中的值存储到数组中

转载 作者:太空狗 更新时间:2023-10-29 15:33:14 24 4
gpt4 key购买 nike

我试图逐行存储从文件中获取的不同值。文本文件中的行如下所示

100000,player1,long title name
300000,someotherplayer,another long title name
45512845,thisplayer,one more long title name

我想将逗号分隔的每个值存储到三个不同的数组中,(int)number、(str)player_name、(str)title_name。

我在下面有一些代码,但它没有编译。

ptr_file=fopen("text.txt", "r");
char buffer[1000];
int line;
line = 0;

while(fgets(buffer, sizeof(buffer), ptr_file) != NULL){
char number[line]=strtok(buffer, ",");
char player_name[line]=strtok(NULL, ",");
char title_name[line]=strtrok(NULL, ",");
}

有人可以给我一些建议吗?

最佳答案

所以,您的代码存在一些问题,

你以“o”模式打开文件,我不太确定它是什么,我怀疑你想要“r”strtok 返回一个不能分配给 char[] 的 char *。第二次运行循环时,您将覆盖缓冲区中的数据。我会做这样的事情:

struct player {
int number;
char player_name[64];
char title_name[256];
};

int main(void) {
FILE *ptrfile=fopen("text.txt", "r");
char buffer[1000];
int line;
struct player players[16];
line = 0;
if(ptrfile==NULL) return 0;
while(fgets(buffer, sizeof(buffer), ptrfile) != NULL){
if(strcmp(buffer, "") == 0) return 0;
char *number=strtok(buffer, ",");
char *player_name=strtok(NULL, ",");
char *title_name=strtok(NULL, ",");
players[line].number=atoi(number);
strcpy(players[line].player_name, player_name);
strcpy(players[line].title_name, title_name);;
line++;
}
fclose(ptrfile);
return 0
}

关于C - 将文本中的值存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522916/

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