Как дать переменную первым словам каждой строки?
#include <stdio.h> #include <stdlib.h> #include <string.h> #define STRING_LEN 200 int main(){ char string[STRING_LEN]; FILE * fp1 = fopen("file.csv", "r"); char * data[2]; while(fgets(string, STRING_LEN, fp1)){ data[0] = strtok(string, ","); data[1] = strtok(NULL, ","); printf("%s\n", data[0]); } return 0; }
Что я уже пробовал:
В этом коде я читаю данные строка за строкой по вертикали. данные[0] читает первую строку вертикально перед запятой. data[1] читает вторую строку вертикально перед запятой вот так
data[0], data[1] word1, word3 word2, word4
Я хочу прочитать данные вертикально, но данные[0] должны быть первым словом из первой строки, данные[1] должны быть первым словом из второй строки.
data[0] = word1 data[1] = word2
Rick York
После того как вы разделили токены на каждой строке, вы можете сохранить все, что хотите сохранить, и делать с ними все, что хотите. Поэтому спросите себя, как вы сохраняете первые жетоны из первых двух строк? Вы не можете просто сохранить указатель, потому что вторая строка перезапишет первую строку в строке. Это означает, что должно быть место для хранения данных. Вы можете либо объявить его как локальные переменные в стеке, либо выделить для него память. Что ты всегда предпочитаешь.