Я пытаюсь использовать C для чтения файла CSV, итерации построчно (до EOF) и разделения / разделения каждой строки запятой.Затем я хочу разделить каждый столбец на «корзины» и добавить их в структуру (которая здесь не показана; я определил ее в файле помощника) на основе типа.
Например, если у меня есть1,Bob
, я бы хотел разделить 1
и Bob
на две переменные.Вот что я написал до сих пор.
void readFile(char file[25]) {
FILE *fp;
char line[1000];
fp = fopen(file, "r"))
while(fgets(line, 1000, fp)) {
char* tmp = strdup(line);
char* token;
while((token = strsep(&tmp, ","))) {
printf("%s\n", token); // I want to split token[0] and token[1]
}
}
fclose(fp);
}
T приведенный выше код компилируется и запускается.Я просто не знаю, как получить доступ к каждому разделу token
, например token[0]
или token[1]
.В питоне это было бы достаточно просто.Я мог бы просто получить доступ к 1
, используя token[0]
и Bob
, используя token[1]
для каждого line
.Но здесь, в C, я не могу этого сделать.
В целях тестирования все, что я сейчас делаю, это печатаю каждую строку (во втором цикле while
), просто чтобы посмотреть, как выглядит каждое разбиение,Я не реализовал код, в котором я поместил каждую разделенную строку в соответствующий член структуры.
Я искал переполнение стека и нашел множество тем по этой теме.Кажется, никто из них не помог мне, кроме этого , из которого я извлек.Но я не смог заставить работать разделение столбцов.