как добавить данные в двоичный файл? - PullRequest
0 голосов
/ 20 сентября 2019

Я не могу добавить данные в файл bin.Оно всегда обрезается до 0 и начинается запись в файл. Пожалуйста, предложите, как добавить данные в файл. Я перепробовал все

Я пытался читать и записывать данные о личности, используя библиотеки классов и fstream и iostream

Пожалуйста, предложите мне использовать библиотеку fstream для обработки файлов или библиотеку C stdio.h

    class identity
    {
        int age;
        char name[20];
    public:
        identity()
        {}
        void getdata()  // input the data
        {
            cout<<"enter your name :";
            cin>>name;
            cout<<"\nenter your age :";
            cin>>age;
        }
        void putdata()  //display the data
        {
         cout<<"Name :"<<name<<endl;
         cout<<"age :"<<age<<endl;
        }
    };

    int main()
    { 
        int i;
        identity i1[2];
        ofstream fobj;
        //opening of Irecord file
        fobj.open("Irecord.dat",ios::out|ios::app|ios::binary);

        for(i=0;i<2;i++)
        {
           i1[i].getdata();
           fobj.write((char*)&i1[i],sizeof(i1[i]));      
        }

        ifstream fin("Irecord",ios::in|ios::binary);
        fin.seekg(0,ios::beg);
        for(i=0;i<20;i++)
        { 
          fin.read((char*)&i1[i],sizeof(i1[i]));
          i1[i].putdata();
        }
        cout<<endl;
        fobj.close();

        return 0;
    }

данные не добавляются в файл, они обрезаются до 0.

1 Ответ

0 голосов
/ 20 сентября 2019

Изменение: ifstream fin (" Irecord.dat ", ios :: in | ios :: binary);

Вы пытаетесь открыть файл, которого там нет.

Поставьте эту проверку ниже сразу после открытия файла, чтобы узнать, был ли успешным открытый вызов или нет.

if (!fin.is_open()) 
    {
        cout << "File opening failed";
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...