我一直在尋找答案,但沒有找到解決這個特定問題的方法。從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的經驗很低,所以這就是爲什麼我打開你。任何人都可以幫忙