ошибка чтения данных из двоичного файла в коде Visual Studio - PullRequest
0 голосов
/ 13 апреля 2020

Привет всем, я создаю имя данных data2.bin и пытаюсь запустить его через эту программу,

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

struct Mahasiswa
{
    int NIM;
    string nama;
    string jurusan;
};

int main()
{
    fstream myFile;
    Mahasiswa dataBaca;
    myFile.open("data2.bin", ios::in | ios::binary);

    myFile.read(reinterpret_cast<char *>(&dataBaca), sizeof(Mahasiswa));

    cout << dataBaca.NIM << endl;
    cout << dataBaca.nama << endl;
    cout << dataBaca.jurusan << endl;

    myFile.close();
    return 0;
}

, когда я запускаю его, программа останавливается на строке myFile.close(), и вывод будет символы знака вопроса, как (ссылка добавлена ​​ниже). Кто-нибудь знает, в чем проблема?

вывод изображения с терминала vscode

вот код для создания data2.bin

#include <iostream>
#include <fstream>
#include <string>

using namespace std;


struct Mahasiswa{
    int NIM;
    string nama;
    string jurusan;
};

int main(){
    fstream myFile;
    myFile.open ("data2.bin", ios::trunc | ios::out | ios::in | ios::binary);

    Mahasiswa mahasiswa1, mahasiswa2, mahasiswa3;
    mahasiswa1.NIM = 123;
    mahasiswa1.nama = "ucup";
    mahasiswa1.jurusan = "memasak";

    mahasiswa2.NIM = 124;
    mahasiswa2.nama = "otong";
    mahasiswa2.jurusan = "menjahit";

    mahasiswa3.NIM = 125;
    mahasiswa3.nama = "sandra";
    mahasiswa3.jurusan = "mesin";

    myFile.write(reinterpret_cast<char*>(&mahasiswa1),sizeof(Mahasiswa));
    myFile.write(reinterpret_cast<char*>(&mahasiswa2),sizeof(Mahasiswa));
    myFile.write(reinterpret_cast<char*>(&mahasiswa3),sizeof(Mahasiswa));



    myFile.close();

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...