Во-первых, вы должны изменить char variable[1]
на char varibale[3]
, по крайней мере, для хранения, например, строки "* a".
Вы можете получить строку за строкой из файла, используя fgets
, затем используя strtok
для разделения строки пробелом.
FILE *fp = fopen("intput.txt", "r");
if(!fp)
// handle error.
char line[256];
while(fgets(line, sizeof(line), fp) {
// using strtok to split each line
}
Для разбиения строки используйте strtok
и проверьте символ звезды *
в начале слова:
char * token = strtok(line, " ");
while (token != NULL) {
strcpy(units[i].variable, token);
if (token[0] == '*')
units[i].hasStar = true;
else
units[i].hasStar = false;
strtok(NULL, " ");
i++;
}
Перед while
l oop из fgets
вы должны объявить размер units
и сначала инициализировать i
, например, приведенный ниже код, я инициализирую размер массива units
, который равен 100:
unit units[100];
int i = 0;