본문 바로가기
카테고리 없음

벡터 파일 입출력

by ByteBridge 2013. 4. 21.
반응형

// vectorEx.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.

//


#include "stdafx.h"



#include <fstream>

#include <vector>


using namespace std;

struct Vertex

{

float x, y, z;

};


typedef vector<Vertex> VertexList;


int _tmain(int argc, _TCHAR* argv[])

{

// Create a list for testing

VertexList list;

Vertex v1 = {1.0f, 2.0f,   3.0f}; list.push_back(v1);

Vertex v2 = {2.0f, 100.0f, 3.0f}; list.push_back(v2);

Vertex v3 = {3.0f, 200.0f, 3.0f}; list.push_back(v3);

Vertex v4 = {4.0f, 300.0f, 3.0f}; list.push_back(v4);


// Write out a list to a disk file

ofstream os ("data.txt", ios::binary);


int size1 = list.size();

os.write((const char*)&size1, 4);

os.write((const char*)&list[0], size1 * sizeof(Vertex));

os.close();



// Read it back in

VertexList list2;


ifstream is("data.txt", ios::binary);

int size2;

is.read((char*)&size2, 4);

list2.resize(size2);


// Is it safe to read a whole array of structures directly into the vector?

is.read((char*)&list2[0], size2 * sizeof(Vertex));

return 0;

}



반응형