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

نام تاپیک: این کد ویرایش با نوع Int درست کار میکنه ولی چرا با نوع char جواب نمیده

  1. #1

    این کد ویرایش با نوع Int درست کار میکنه ولی چرا با نوع char جواب نمیده

    سلام این کد که میگذارم برای ویرایش یک رکورد در فایل هست زمانی که رکوردی که میخوام ویرایش کنم پارامتر بازیابی اون فیلد id که نوعش int هست درست کار میکنه ولی روی نوع char کار نمیکنه
    دلیلش چیه ؟

    این کد ویرایش با فیلد char هست که جواب نمیده اگه همینو با فیلد id که از نوع int هست جواب میده :


    void edit()
    {
    char en[91];
    ifstream in("dic.dat",ios::in|ios::binary);
    ofstream out("temp.dat",ios::out |ios::binary);
    clrscr();
    cout<<"please enter a enword";
    cin>>en;
    while(in.read((char *)&translation,sizeof(struct translate)))
    {
    if(translation.enword==en)
    {
    cout<<"enter a new a information";
    cout<<"enword";
    cin>>translation.enword;
    cout<<"faword";
    cin>>translation.faword;
    }
    out.write((char *)&translation,sizeof(struct translate));
    } //endwile
    in.close();
    out.close();
    remove("dic.dat");
    rename("temp.dat","dic.dat");

    getch();
    }





    با تشکر

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

    نقل قول: این کد ویرایش با نوع Int درست کار میکنه ولی چرا با نوع char جواب نمیده

    با سلام.

    احتمالا وقتی شما میخواین ادیت کنین، رکورد رو تو فایل پیدا نمیکنه. اگه آره:
    این خط اشتباهه. شما نمیتونین یه آرایه رو با عملگر == مقایسه کنین.

    از دستور strcmp استفاده کنید. در ضمن شما بجای استفاده از دو فایل برای ویرایش میتونین از یه فایل استفاده کنید به این صورت که فایل رو بصورت ios:ate باز کنید و اشاره گرنوشتن رو به ابتدای رکوردی که میخواین ویرایش کنین ببرین و دستور نوشتن رو بدین در این صورت رکورد جدید بر روی رکورد قبلی اوررایت میشه.
    موفق باشین

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

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