-1
我有一個包含以下格式的行輸入文件:Ç的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++;
}
是C或C++?請提供[mcve] – user463035818
它說標題中的C和最小可驗證示例在最後提供。 – tyr
那麼什麼是C++標籤的好處? – user463035818