Datuve :: Forums :: Arhīvs :: C++ binārā failu apstrāde

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 98

Reģistrētie lietotāji online: 0

Viesi online: 98

Datuve.lv video
Top.LV

C++ binārā failu apstrāde

Ievietoja: bombtrack @ 2007.05.09 21:33  

Te programmas koda fragments:

struct data {
      int key;
      char value[30];
};

int main()
{
  fstream fout ("f.dat");
  data record;
  cin >> record.key;
  cin >> record.value;
  fout.write((char*)&record.key, 4);
  fout.write(record.value, 30);
  ...
  };

Problēma: ievadot pašā sākumā (cin >> record.key) atslēgu 10 (varbūt arī kādu citu), faila sākumā parādās mistisks 0D (hex), tb, fails sākas ar 0D 0A 00 00 00 (hex), kaut gan tam būtu jāsākas ar 0A (10). Ja ievada kādu citu atslēgu, tad viss ir kārtībā, proga arī ieraksta vajadzīgos 4 baitus (sizeof(int)).
Tad jautājums tāds: kas tas par 0D un kāpēc tas parādās?