Mój program czyta plik tekstowy zawierający różne wiersze tekstu dla pliku ustawień. Niektóre linie mogą być bardzo duże. Obecnie rozmiar bufora to 4096 znaków. Możliwe, że niektóre linie mogą przekroczyć to, czy to z powodu złośliwości, czy z powodu różnych czynników działających w ramach programu.Czy istnieje rozpowszechniona biblioteka C do odczytu par nazw/wartości z pliku?
Obecne procedury były dość żmudne w pisaniu, a teraz chcę rozszerzyć możliwą zawartość pliku, który będzie wymagał więcej tego żmudnego powtarzalnego kodu. (Jest to plik typu ustawień, składający się z par name value
i od czasu do czasu nagłówek sekcji Niektóre wartości liczbowe muszą być odczytywane jako ciągi z powodu wielokrotnej precyzji).
Najważniejsze jest, aby odczytać dowolną długość linii bez przepełnienia bufora. Właśnie odkryłem, że getline może to dla mnie zrobić, ale czy istnieje niebiosa dla biblioteki, która zrobi dla mnie tyle nudy?
edit:
Nie chcę być zmuszony do złożenia =
znakiem między nazwą i wartościami, pusta przestrzeń powinna wystarczyć jako separatora.
Powszechnie myślę, że biblioteka powinna być dostępna w standardowych pakietach popularnych dystrybucji Linuksa.
Jestem świadomy libconfig, ale wydaje się, że jestem kompletny przesadą dla moich wymagań.
w tym przypadku proponuję również napisać to, wydaje się dość banalne. Jedynym problemem jest to, jak będziesz przechowywać swój stół, jeśli jest to czysty C, a nie std :: map dla ciebie, ale domyślam się, że masz już własne struktury danych? –
Dzięki za sscanf% [..] napiwek, ale po testach brakuje ci karetki: '"% [^:]:% [^ \ n] "', okrzyki, idę tą trasą . –
Poprawione. Przepraszam za brakującą karetkę. – piotr