더북(TheBook)

그런데 앞 코드에서 변수 fn은 임시로 사용된 후 필요가 없어지므로 굳이 변수로 선언하여 사용하지 않는 것이 일반적입니다. 그러므로 앞 코드는 보통 다음과 같은 형태로 사용합니다.

int year;
fs["year"] >> year;

이 예제 코드는 FileStorage 객체 fs로부터 “year”라는 노드 이름의 데이터를 읽어 와서 year 변수에 저장합니다. 결국 FileStorage 클래스를 이용하여 파일을 읽을 때에는 FileNode 클래스의 객체를 명시적으로 사용하지 않아도 되며, 데이터 노드 이름과 자료형을 제대로 알고 있다면 어떠한 데이터도 쉽게 읽을 수 있습니다.

FileStorage 클래스를 이용하여 파일로부터 데이터를 읽어 오는 예제 코드를 코드 4-15에 나타냈습니다. 코드 4-15의 readData() 함수는 FileStorage 클래스를 이용하여 파일로부터 C/C++ 기본 자료형, STL 벡터, OpenCV 자료형 등을 읽어 옵니다. 이 예제에서는 앞서 4.4.2절의 코드 4-14에서 생성한 mydata.json 파일을 데이터 파일로 사용합니다. readData() 함수가 정의된 소스 파일은 내려받은 예제 파일 중 ch04/storage 프로젝트에서 확인할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.