У меня есть fscanf для чтения строк настройки из файла конфигурации. Эти настройки имеют строго предопределенный формат, который выглядит как
name1=option1;
name2=option2;
...
так что в основном я делаю
fscanf(configuration,"%[^=]=%[^;];",name,option);
где конфигурация - это поток файлов, а имя и параметр - буферы программирования.
Проблема заключается в том, что буфер имен содержит символ новой строки, который я не хочу. Есть ли спецификатор формата, который я пропустил в "[^...]", чтобы пропустить символ новой строки? Во всяком случае, можно ли это решить с помощью спецификатора формата?
BTW: проглатывание символа новой строки, называя это
"%[^=]=%[^;];\n"
не является изящным. Я думаю, что символ новой строки может повторяться более чем раз.