• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:STLで、vectorのファイルへの書き出し、読み込み。)

STLでvectorのファイルへの書き出し、読み込み

このQ&Aのポイント
  • C++のSTLでvectorをファイルに書き出し、読み込む方法について
  • vectorをファイルに書き出すためのコード例と書き出し時に発生するエラーメッセージについて
  • vectorをファイルから読み込むための解決方法とエラーメッセージについて

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

#include <iostream> #include <fstream> #include <vector> using namespace std; int main() { vector<int> testvector; for (int i = 0 ; i < 10 ; i++) testvector.push_back( (i+1)*100 ); ofstream out("test.dat", ios::out | ios::binary); if (!out) return 1; int count = testvector.size(); out.write(reinterpret_cast<const char*>(&count), sizeof(count)); out.write(reinterpret_cast<const char*>(&testvector[0]), testvector.size() * sizeof(int)); out.close(); testvector.clear(); count = 0; ifstream in("test.dat", ios::in | ios::binary); if ( !in ) return 1; in.read(reinterpret_cast<char*>(&count), sizeof(count)); testvector.assign(count, 0); in.read(reinterpret_cast<char*>(&testvector[0]), testvector.size() * sizeof(int)); in.close(); for ( int i = 0; i < testvector.size(); ++i ) cout << testvector[i] << endl; }

poerno
質問者

お礼

ありがとうございました! vectorのsizeを書き出さないかなと思っていたのですが、readの時にassignするところなどは考えが及んでおりませんでした。ありがとうございます。 reinterpret_castについても今まで知識がなかったので、いろいろと調べてみます。