내 프로그램에서 설정 파일의 다양한 텍스트 행을 포함하는 텍스트 파일을 읽는 중입니다. 일부 선은 매우 커질 수 있습니다. 현재 버퍼 크기는 4096 자입니다. 악의적이거나 프로그램 내에서 작동하는 다양한 요인으로 인해 일부 라인이이를 초과 할 수 있습니다.파일에서 이름/값 쌍을 읽을 수있는 광범위한 C 라이브러리가 있습니까?
현재 루틴은 쓰기가 지루하고 지금은 지루한 반복 코드가 더 많이 필요할 수있는 파일의 가능한 내용을 확장하려고합니다. (이는 설정 유형 파일로 name value
쌍과 간혹 섹션 헤더로 구성되며, 여러 개의 정밀도로 인해 일부 숫자 값을 문자열로 읽어야합니다.)
내가 원했던 중요한 점은 버퍼 오버플로없이 임의 길이 선을 읽는 것입니다. 나는 getline이 나를 위해 이것을 할 수 있다는 것을 알았지 만, 하늘을 위해 저를위한 지루한 일을 많이 할 라이브러리가 있습니까?
편집 :
나는 이름과 값 사이의 =
기호를 배치하도록 강요하지 않으려면, 빈 공간이 구분으로 충분합니다.
널리 퍼져 있기 때문에 인기있는 Linux 배포판의 표준 패키지에서 라이브러리를 사용할 수 있어야합니다.
나는 libconfig을 알고 있지만 내 요구 사항이 지나치게 과장된 것 같습니다.
을 쓰는 것이 좋습니다. 사소한 것 같습니다. 유일한 문제는 테이블을 저장하는 방법입니다.이 테이블이 순수 C 인 경우 std :: map은 없지만 자신의 데이터 구조를 이미 가지고 있다고 생각하십니까? –
sscanf % [..] 팁을 주셔서 감사합니다. 그러나 테스트를 마친 후에는 캐럿이 누락되었습니다. % [^ :] : % [^ \ n] "', 건배,이 길로 갈거야. . –
수정되었습니다. 누락 된 캐럿을 유감으로 여긴다. – piotr