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

نام تاپیک: مشکل با تابع seekg()

  1. #1
    کاربر دائمی آواتار vasilopita
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Dezfoul
    پست
    253

    Thumbs up مشکل با تابع seekg()

    سلام من با تابع seekg مشکل دارم یعنی اینکه وقتی توی این تابع به یه شی اشاره میکنم و وقتی از تابع read استفاده می کنم اون شی مورد نظر برنمی گرده و همیشه آخرین شی که وارد شده رو بر می گردونه این سورس برنامه هستش:
    #include<iostream>
    #include<fstream>
    #include<conio.h>
    #include<stdio.h>
    using namespace std;
    struct student
    {
    char name[21];
    int number;
    float mark;
    bool state;
    student()
    {
    state=0;
    }
    };
    void main()
    {
    int n;
    cout<<"N ?\n";
    cin>>n;
    student stu1,stu;
    ofstream out("test.dat");
    ifstream in("test.dat");
    for(int i=1;i<=n;i++)
    {
    cout<<"Name: ";
    cin>>stu1.name;
    cout<<"Number: ";
    cin>>stu1.number;
    cout<<"Mark: ";
    cin>>stu1.mark;
    stu1.state=0;
    out.seekp(sizeof(struct student)*stu1.number,ios::beg);
    out.write((char*)&stu1,sizeof(struct student));
    out.close();
    }
    cout<<"Enter The Student Number To see The Details\a\n";
    cin>>n;
    in.seekg(sizeof(struct student)*n,ios::beg);
    in.read((char*)&stu1,sizeof(struct student));
    cout<<stu1.name<<" "<<stu1.mark<<" "<<stu1.number<<"\n";
    in.close();
    }


    وقتی برنامه رو اجرا می کنم همچین نتیجه ای می ده:
    ضمیمه 68979
    این در صورتی که شماره 2 متعلق به علیه ولی این رضا رو نشون می ده
    آخرین ویرایش به وسیله vasilopita : پنج شنبه 01 اردیبهشت 1390 در 12:43 عصر

  2. #2
    کاربر دائمی آواتار vasilopita
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Dezfoul
    پست
    253

    نقل قول: مشکل با تابع seekg()

    یعنی هیچ کس نیست که جواب منو بده ؟ آخه من چی کار کنـــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــم ؟

  3. #3
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل با تابع seekg()

    سلام.
    برنامه دقیقاً مشکلش چیه؟
    من که هیچ مشکلی احساس نکردم./[Strikethrough]درست کار میکرد.[/Strikethrough]
    فقط conio.h اضافه بود.
    تصاویر ضمیمه هم همه مشکل دارن.
    out.close باید از for بیاد بیرون.

  4. #4
    کاربر دائمی آواتار vasilopita
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Dezfoul
    پست
    253

    نقل قول: مشکل با تابع seekg()

    ممنونم که توجه کردید. اولا منظورتون چیه تصاویر ضمیمه مشکل دارن ؟ یعنی نمی تونید تصائیر رو ببینید یا جوابی که تو تصاویر اومده مشکل دارن؟ که اگر گزینه ی دومه که خودک گفتم باید ali رو نشون بده نه رضا. حالا شما ali رو برمی گردونه ؟

  5. #5
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل با تابع seekg()

    نقل قول نوشته شده توسط vasilopita مشاهده تاپیک
    ممنونم که توجه کردید. اولا منظورتون چیه تصاویر ضمیمه مشکل دارن ؟ یعنی نمی تونید تصائیر رو ببینید یا جوابی که تو تصاویر اومده مشکل دارن؟ که اگر گزینه ی دومه که خودک گفتم باید ali رو نشون بده نه رضا. حالا شما ali رو برمی گردونه ؟
    تصاویر رو نمیتونم ببینم.
    تنها مشکلی که من بهش خوردم این بود که بعد از ۱۰ ۲۰ تا تست که انجام دادم توی یکی از موارد وقتی ترتیب رو عکس میدادم فقط یکی از record ها کار میکرد.
    out.close() رو وقتی از حلقه آوردم بیرون درست شد.

  6. #6
    کاربر دائمی آواتار vasilopita
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Dezfoul
    پست
    253

    نقل قول: مشکل با تابع seekg()

    Test.JPG

    اینم از عکس. نگاه کنید باید ali برگردونه ولی رضا برمی گردونه نمی دونم چرا ؟


  7. #7
    کاربر دائمی آواتار vasilopita
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Dezfoul
    پست
    253

    نقل قول: مشکل با تابع seekg()

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    out.close() رو وقتی از حلقه آوردم بیرون درست شد.
    آقا دستت درد نکنه مشکل همین بود باور کن چند روزی بود روش گیر کرده بودم خیلی آقایی الان چندتا بوس + یه تشکر واست می فرستم :

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

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