Я пытаюсь получить данные из файла, файл отформатирован и имеет 5 значений в строке, код считывает только первые 4 и переходит к следующей строке.
Файл отформатирован следующим образом:
1 | 1 | 1 | qwqqqqqqqq | q |
2 | 2 | 2 | a | a |
3 | 3 | 3 | e | e |
(this line has nothing)
char buffer[100];
for(int i=0; i<numofline; i++)
{
fgets(buffer,100,fr);
sscanf(buffer,"%d | %d | %d | %[^|]s | %[^|]s |\n", &dump, &sa[i].v1, &sa[i].v2,sa[i].v3, sa[i].v4);
printf("%-5d%-5d%-5d%-20s%-20s\n", dump, sa[i].v1, sa[i].v2,sa[i].v3,sa[i].v4);
}
Я ожидаю, что результат будет похож на файл, который равен
1 1 1 qwqqqqqqqq q
2 2 2 a a
3 3 3 e e
, но в фактическом результате отсутствует последний столбец
1 1 1 qwqqqqqqqq
2 2 2 a
3 3 3 e