我一直在寻找答案,但没有找到解决这个特定问题的方法。从csv文件读取并分离成C的变量
我有这个csv文件
想象力,我应该从这个.csv文件创建曲棍球球员
enum POZICE { UTOCNIK = 'U', OBRANCE = 'O', BRANKAR = 'B' };
typedef struct hrac {
int cislo;
char jmeno[50];
enum POZICE pozice;
int utocnaSila;
int obrannaSila;
struct hrac *dalsi;
} tHrac;
编号,名称,播放器的位置(门将,防守者等),他的攻击力,防守力量以及与下一名球员的联系。
创建方法:
void nactiSeznamHracu() {
char *tmp1[30];
char *tmp2[30];
char *tmp3[30];
char *tmp4[30];
char *ch[255];
int a = 0;
FILE* soubor = fopen(SEZNAM, "r");
fgets(ch, sizeof(ch), soubor);
fputs(ch, stdout);
sscanf(ch, "% [^;]%[^;]", tmp1, tmp2); // parsing whole char *ch into smaller pieces, wont work
puts(tmp1,tmp2);
fscanf(soubor, "%c [^;]%s [^;]", tmp3,tmp4); // without saving first line into ch, and cutting it right away
puts(tmp3);
//token = strtok(ch, "\n");
//puts(token);
}
我可以成功地加载第一线,但是当我试图以某种方式切割线切成小块
tHrac* vytvorHrace(int cislo, char* jmeno, enum Pozice pozice, int utocnaSila, int obrannaSila) {
tHrac* hrac = (tHrac*)malloc(sizeof(tHrac));
hrac->cislo = cislo;
strcpy(hrac->jmeno, jmeno);
hrac->pozice = pozice;
hrac->utocnaSila = utocnaSila;
hrac->obrannaSila = obrannaSila;
hrac->dalsi = NULL;
}
现在我的问题的核心,加载方法,像数字,名称,攻击,Deffence,位置,它不会工作(或只切割成小块),我尝试了很多方法,比我在这里多,但结果总是一样的...(前两个img行不相关,只是测试tHrac,创建和写作)
我的目的是创建一个周期中,将加载第一线,将其加载到seperately变量,我将用它来创建tHrac,然后将其跳过到下一行,同样的事情...
但我与C的经验很低,所以这就是为什么我打开你。任何人都可以帮忙