일단 노드 이름을 이용하여 FileNode 객체를 얻어 온 후에는 FileNode 클래스의 >> 연산자 재정의 함수를 이용하여 노드에 저장된 데이터 값을 받아 올 수 있습니다. FileNode 객체와 함께 사용하는 >> 연산자 재정의 함수 원형은 다음과 같습니다.
template<typename _Tp> static void operator >> (const FileNode& n, _Tp& value); template<typename _Tp> static void operator >> (const FileNode& n, std::vector<_Tp>& vec); |
|
• n |
FileNode 객체 |
• value |
받아 올 데이터 형식(C/C++ 기본 자료형, 벡터, 클래스 등)에 맞는 변수 이름 |
• vec |
STL vector 형식으로 저장된 데이터를 불러올 때 사용합니다. |
재정의된 >> 연산자 함수를 사용하여 데이터를 읽어 오려면 >> 연산자 왼쪽에 FileNode 객체 이름을 쓰고, >> 연산자 오른쪽에는 받아 올 데이터 형식에 맞는 변수 이름을 적습니다. 예를 들어 데이터 파일에 “year”라는 이름으로 저장되어 있는 정수형 데이터를 읽어 와서 변수 year에 저장하려면 다음과 같이 코드를 작성합니다. 다음 코드에서 변수 fs는 읽기 모드로 생성된 FileStorage 객체입니다.
int year; FileNode fn = fs["year"]; fn >> year;