Привет всем, я создаю имя данных 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;
}