Язык C - использование fscanf для длинного текстового файла - PullRequest
0 голосов
/ 14 января 2019

Я хочу прочитать текстовый файл, как это:

Soldiers in some part of empire are not doing so well. We could cut funds by reducing their numbers.
Yes, reduce their numbers.
-5
0
5
No, we need them.
0
0
-10

Я написал структуру для сохранения загруженных данных, но она не работает ...

FILE * Fchoice = fopen(Addresses, "r+");

fscanf(Fchoice ,"%[^\n]s\n%[^\n]s\n%d\n%d\n%d\n%[^\n]s%d\n%d\n%d",
        TmpProblem.question,               // char[]
        TmpProblem.choices[0].what,        // char[]
        &TmpProblem.choices[0].people,     // int
        &TmpProblem.choices[0].court,      // int
        &TmpProblem.choices[0].treasury,   // int
        TmpProblem.choices[1].what,        // char[]
        &TmpProblem.choices[1].people,     // int
        &TmpProblem.choices[1].court,      // int
        &TmpProblem.choices[1].treasury    // int
        );

после печати данных, которые я загрузил, просто загружается первая строка текста ... ребята, вы можете отладить это?

1 Ответ

0 голосов
/ 14 января 2019

[^\n]s не является спецификатором формата. [^\n]\n.

Где [^\n] читает, пока не произойдет \n.


Таким образом заменить

"%[^\n]s\n%[^\n]s%d\n%d\n%d\n%[^\n]s%d\n%d\n%d"

с

"%[^\n]\n%[^\n]\n%d\n%d\n%d\n%[^\n]\n%d\n%d\n%d"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...