У меня есть входной файл, содержащие строки следующего формата:C fscanf входного формата
%s %d %d %d %lf %lf ... %lf\n
где число double
значений неизвестно, но для моих расчетов Я принимаю только первых 15 из них.
Проблема, которую я не могу понять, когда я добираюсь до линии, как это:
City0 28 2 2016 1 2 3 4 5 6 7 8 9 10
City1 28 2 2016 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
City2 1 3 2016 1 2 3 4 5
и я правильно назначить соответствующие значения в определенную структуру, я получаю следующее:
City0 28 2 2016 Number of measures: 10
City1 28 2 2016 Number of measures: 15
16 17 18 19 Number of measures: 1
City2 1 3 2016 Number of measures: 5
Как читать (никуда)/игнорировать все, пока не дойду до конца строки, а затем начну читать следующую строку, как обычно? Мне нужен следующий вывод:
City0 28 2 2016 Number of measures: 10
City1 28 2 2016 Number of measures: 15
City2 1 3 2016 Number of measures: 5
Я попробовал это, но не получил больше никаких идей:
i=0; char character;
while (fscanf(fp, "%s %d %d %d", c.name, &c[i].date.day,
&c[i].date.month, &c[i].date.year)==4 && i<number_of_cities) {
while (fscanf(fp, "%lf", &c[i].measures[j])==1 && j<15) {
j++;
}
if (j==15) {
while (fscanf(fp, "%s", character)!='\n') {}
}
c[i].mnum = j;
j=0;
i++;
}
это с или с ++? Пожалуйста, предоставьте [mcve] – user463035818
. Он говорит, что C в заголовке и минимальный проверенный пример предоставляется в конце. – tyr
то, что подходит для C++-тега? – user463035818