Чтение строк из файла разных форматов c ++ - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь прочитать входной файл построчно и использую sscanf, чтобы проверить и извлечь его. Но строки, хотя у них всегда есть два термина для каждого, они могут быть по-разному отформатированы, например файл может выглядеть так:

valueone 0
valuetwo 55
valuethree version

Если бы были только форматы строк, за которыми следовал номер, я всегда мог бы сканировать следующим образом: (int test;)

test = sscanf(line, "%s%f", title, &num)

но, как показано выше, иногда формат строки равен %s%s (например, 3-я строка sscanf(line, "%s%s", title, strvalue)), так как я могу написать аргументы sscanf, чтобы разрешить оба вида форматов строки?

1 Ответ

1 голос
/ 16 мая 2019

так, как мне написать аргументы sscanf, чтобы разрешить оба вида форматов строк?

Вы не можете, sscanf просто не может этого сделать. То, что вы можете сделать, это всегда использовать %s %s, а затем попытаться проанализировать вторую строку как двойную, используя strtod или strtof .

...