如何使c ++输出二进制文件

时间:2016-05-10 21:19:06

标签: c++

void Binarycheck() {
    long Ilk, Son,Dboyut;
    ifstream Dosya("Personel.bin");
    Ilk = Dosya.tellg();        //dosyanin baslangic adresini al
    Dosya.seekg(0, ios::end);   //dosyanin sonuna git
    Son = Dosya.tellg();        //dosyanin son adresini al
    Dosya.close();
    Dboyut = (Son - Ilk);
    KayitAdedi = (Son - Ilk) / sizeof(Veri);
}

void Binarystart() {
    Binarycheck();
    Cikis.open("Personel.bin", ios::in | ios::binary);
    for (int k = 0; k<KayitAdedi; k++)
    {
        Cikis.read((char*)&Veri, sizeof(Veri));
        Veriler[k] = Veri;
    }
    Cikis.close();
}
Personel m1BagliKayits() {
        int persno, kno,bsayi, i;
        Binarycheck();
        Binarystart();
        cout << "Personel Numarasi Girin ="; cin >> persno;
        kno = persno - 1001;
        cout << Veriler[kno].Isim;
        Veriler[kno].Bagli = new Baglilar;
        cout << "Girilecek Bagli Sayisi= "; cin >> bsayi;
        for (i = 0; i < bsayi; i++) {
            cout << "bagli adi girin= "; cin >> Veriler[kno].Bagli[i].Isim;
        }
        //for (i = 0; i < bsayi; i++) {
        //  cout << Veriler[kno].Bagli[i].Isim;
        //}

        system("pause");
        return Veriler[kno];
    }

void m1BagliKayit() {
    bcikis.open("Baglilar.bin", ios::out || ios::binary || ios::app);
    Data = m1BagliKayits();
    bcikis.write((char*)&Data, sizeof(Data));
    bcikis.close();
    system("pause");
}

你好,我是stackoverflow和c ++的新手,我正在尝试用c ++做事,当然我不能,

前两个函数获取有关personel.bin文件的信息,然后我尝试创建一个名为Baglilar.bin的新文件,但它失败了。有时我会得到&#34;断点&#34;错误有时我不会得到任何错误,但程序没有创建&#34; Baglilar.bin&#34;文件并在其中插入数据,从personel.bin获取数据并使用它没有问题,我没有得到任何其他错误,想知道问题是什么,有人可以请帮助我?感谢您的关注。抱歉英语不好

struct Baglilar
{
int No;
char Isim[20];
}Baglikisisayisi,Bagli,BData,B;

struct Personel
{   
    char Isim[20];
    char Soyisim[20];
    int gun, ay, yil;
    int No,izin,isgunu,maaskat,maas,aygun,Baglikisisayisi;
    Baglilar *Bagli;
}Veri,Veriler[10],Data,D,temp;

0 个答案:

没有答案