長寝できない。
■
友達と市街へ。
しかし用事がない。
友達はMP3プレーヤーが壊れたから買いに行くとか。
本、CD、ちょっとしたパソコン周辺機器、ゲーム。
本はまだいい。CDは欲しいのなんて普通のCDショップじゃ売ってない。
パソコン周辺機器で欲しいのは音源、DVDドライブ、MIDIケーブル。どれも高い。今欲しくはない。
ゲームはやらないやる暇無い。
よく考えたら僕は毎日仕事しかしてないな。
早く決めないとどうしようもない。
武装錬金はまだいらないんだけど。行人ももうちょっとかかるから漱石もラノベもいい。
どうしましょ。
結局武装錬金4巻まで買ってきた。
友は僕は妹に恋してるとかいうのを買っていた。名前は知っているがあやふや。
少女漫画をまとめ買いするのに抵抗があるらしく、なんだか散々迷っていた。
じゃあ一緒にまとめがいしようぜということで僕も4冊買うことになった。
その時は僕もまぁどうせそのうち買うんだしぐらいに考えて付き合ったけど
よく考えたらガソリン入れるお金がなくなってた。
休みの日とか夕方とかに銀行から降ろすと手数料かかるからいやなんだけど。一回100円はボッタクリだろう。
平日の昼間はずうっと仕事だし。
次の休みまではガソリン持たないっぽいしなぁ。
ううむ、少し馬鹿なことをした。
1巻読んだ。なんだかキャラが違う。再殺編からが面白かったような、つまらなかったような。
やっぱりあんまし覚えてない。とりあえずしばらく4巻までで。
漱石読み終わったら一緒に買いに行けばいいや。
■
#include <iostream> #include <fstream> #include <cstring> using namespace std; typedef struct { char famiry[11]; char name[11]; char special[15]; char sex[5]; char character[11]; unsigned int Lv; unsigned int kotaiti[6]; unsigned int doryoku[6]; char mezapa[5]; } PokeData; int main() { PokeData testData, getTest; int localKotaiti[6] = { 31, 2, 31, 30, 31, 30}; int localDoryoku[6] = { 4, 0, 0, 248, 4, 248}; // 書き込み ofstream fout("070121.dat", ios::out | ios::binary); if(!fout) return 1; strcpy(testData.famiry, "キャタピー"); strcpy(testData.name, "V2VUv"); strcpy(testData.special, "りんぷん"); strcpy(testData.sex , "♂"); strcpy(testData.character, "おくびょう"); testData.Lv = 5; for (int i = 0; i < 6; i++) { testData.kotaiti[i] = localKotaiti[i]; testData.doryoku[i] = localDoryoku[i]; } strcpy(testData.mezapa, "炎70"); fout.write((char*)&testData, sizeof(PokeData)); fout.close(); // 読み込み ifstream fin("070121.dat", ios::in | ios::binary); if(!fin) return 1; fin.read((char*)&getTest, sizeof(PokeData)); cout << getTest.famiry << endl; cout << getTest.name << endl; cout << getTest.special << endl; cout << getTest.sex << endl; cout << getTest.character << endl; cout << getTest.Lv << endl; for (int i = 0; i < 6; i++) { cout << "個体値:" << getTest.kotaiti[i] << endl; cout << "努力値:" << getTest.doryoku[i] << endl; } cout << getTest.mezapa << endl; fin.close(); return 0; }
まぁこんなところじゃないですか。
アウトプットとインプットのファイルオープンをわけているのは練習のためです。fstreamクラスの存在は知っています。
このPokeData構造体の配列を作って、そこに次々にデータを読み込んでいけばいいんだよね。
OK、把握した。
■
更新日時を加えた。IDとして使えるかなと。
で、これはバイナリエディタでPokeDataの中身をのぞいたところ。
00が多い。構造体だから?前半のは文字列の余りだけど。
あと、ゴミデータも結構入ってた。このスクリーンショットはお掃除後。
サイズのことを考えると構造体じゃないほうがいいような気もしてきた。
でも扱いやすいのは確実に構造体なんだよなぁ。
あとはeof()メソッドの使い方がよくわからない。
真偽判定に使えるとか書いてあったけど、whileで使うと判定を見送られる。
1個しかデータがないのにもう一度回る。わけわかめ。
もしかして「一つデータ書く→一つデータ読む ≠ ファイルが終わる」ってことなのか。
でもバイナリ見た限りだと最後に時刻があってぴったし終わってるんだよな。
使い方もう一度確認してみよう。
■
ガンソってこんな面白かったかしら。
とんでもキャラが二話連続。こんな話だったっけ。