نمایش نتایج 1 تا 3 از 3

نام تاپیک: فایل های دودویی خواندن و نوشتن

  1. #1

    Question فایل های دودویی خواندن و نوشتن

    سلام...
    چند تا مشکلی دارم!
    برنامه زیر را بببنید!
    1- چرا با اینکه ما پنج تا struct name وارد می کنیم و در فایل ذخیره می کنیم
    شمارشگر i می گه شش تا struct name در فایل موجود هست؟
    2- چرا وقتی می خواییم تمامی struct name های موجود در فایل را چاپ کنیم
    اخری دوبار تکرار میشه؟
    #include <iostream>
    #include <conio.h>
    #include <string.h>
    using namespace std;

    struct name{
    char A[10] , B[10];
    };

    int main() {

    FILE *io;
    name po;

    int i=0;

    io = fopen ("112.dat" ,"w+b");
    for (int j=0 ; j<5 ; j++){
    cout<<"First name : ";
    gets (po.A);
    cout<<endl;
    cout<<"last name : ";
    gets (po.B);
    cout<<endl;
    fwrite(&po, sizeof(name ),1,io) ;
    }
    fclose (io);

    io = fopen ("112.dat" ,"rb");
    while (!feof(io)){
    fread(&po, sizeof(name ),1,io) ;
    i++;
    }
    cout<<i<<endl;
    fclose (io);
    io = fopen ("112.dat" ,"rb");
    while (!feof(io)){
    fread(&po, sizeof(name ),1,io) ;
    cout<<po.A<<endl;
    cout<<po.B<<endl;
    }
    fclose (io);
    getch();
    return 0 ;
    }


  2. #2
    کاربر دائمی آواتار quiet_programmer
    تاریخ عضویت
    دی 1389
    محل زندگی
    زنجان
    سن
    38
    پست
    289

    نقل قول: فایل های دودویی خواندن و نوشتن

    با سلام.

    کد رو به شکل زیر تغییر بده. وقت نیست دیگه توضیح نمیدم و امیدوارم خودت متوجه شده باشی. ولی اگه باز خواستی بگو تا بعدا توضیح بدم.

    #include <iostream>
    #include <conio.h>
    #include <string.h>
    using namespace std;

    struct name{
    char A[10] , B[10];
    };

    int main()
    {
    FILE *io;
    name po;
    int i=0;

    io = fopen ("112.dat" ,"w+b");
    for (int j=0 ; j<5 ; j++)
    {
    cout<<"First name : ";
    gets (po.A);
    cout<<endl;
    cout<<"last name : ";
    gets (po.B);
    cout<<endl;
    fwrite(&po, sizeof(name ),1,io) ;
    }
    fclose (io);

    io = fopen ("112.dat" ,"rb");
    while (fread(&po, sizeof(name ),1,io))
    {
    i++;
    }
    cout<<i<<endl;
    fclose (io);
    io = fopen ("112.dat" ,"rb");
    while (fread(&po, sizeof(name),1,io))
    {
    cout<<po.A<<endl;
    cout<<po.B<<endl;
    }
    fclose (io);
    getch();
    return 0 ;
    }

  3. #3

    نقل قول: فایل های دودویی خواندن و نوشتن

    مرسی عزیزم
    اره گرفتم چی شد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •