0

バイナリに変換しているテキストファイルがあります。その7桁の番号。名前が続き、それから繰り返しますが、多くの名前がリストされています。

1234567 First Last
7654321 First Last

7桁のintであるため、int構造体でこのメソッドを使用してバイナリに出力するのに問題があります。名前が3つしかない場合でも、書き込むたびに非常に大きな.DAT(バイナリ)ファイルが表示されます。バイナリの.datファイルが約200kbに​​見え、20mb以上の範囲にならないように出力するためのより良い方法はありますか?

const int MAX = 50;

struct StudentRegistration{
    int studentID;
    char name[MAX];
};

    fstream afile;
    ifstream infile;

  afile.open (fileName2, ios::out | ios::binary);
    infile.open (fileName1);

 while (infile >> s.studentID)
    {
        infile.get(space);
        infile.getline(&s.name, MAX);
        afile.seekp((s.studentID-1)*sizeof(StudentRegistration), ios::beg);
        afile.write(reinterpret_cast <const char *>(&s), sizeof(s));
    }

    afile.close();
    infile.close();
4

1 に答える 1

0

シークラインを削除しましたが、今のところやりたいことをしているようです。

于 2013-01-13T08:09:33.110 に答える