اطلاعیه

Collapse
No announcement yet.

ذخیره متغیر در فایل خارجی در C

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ذخیره متغیر در فایل خارجی در C

    درود
    دوستان چجوری میتونم یک متغیر رو مثلا در یک فایا txt ذخیره کنم؟

    #2
    پاسخ : ذخیره متغیر در فایل خارجی در C

    متغیرهای داخل برنامه یه جایی توی ram ذخیره شدند. اگه میخوای مقدار اون متغیر رو بصورت دائمی نگه داری (مثلا بعد از خاموش شدن کامپیوتر و روشن شدن دوباره اون مقدار یه متغیر رو از اجرای قبل داشته باشی) این متغیر رو میتونی داخل فایل بنویسی. روش کار هم اینطوریه که یه فایل باز میکنی مثلا با تابع fopen و بعد اون متغیر رو بصورت متنی یا باینری داخل این فایل مینویسی مثلا با تایع fwrite یا putsf . و بعد فایل رو میبندی. هر وقت هم که خواستی از اون متغیر استفاده کنی همین روال بجای fwrite از fread استفاه کن

    دیدگاه


      #3
      پاسخ : ذخیره متغیر در فایل خارجی در C

      ممنون از جواب

      این کاریه که میخوام بکنم:
      متغیری که تو یه function هست رو save کنم، این function چند بار call میشه

      برنامه رومثلا اینطوری نوشتم :
      کد:
      #include <stdio.h>
      
      int function(void);
      
      main(){
      
      int i=0;
      int c;
      
      for (i=1;i<5;i++){
      printf("c is : %d\n",i);
      function(); 
      }
      
      return 0;
      }
      
      int function (void){
      static int i=0;
      i++;
      FILE *fp;
      fp=fopen("./test.txt", "a");
      fprintf(fp,"i is : %d\n",i);
      
      
      }
      (متاسفانه نمیدونستم چجوری چپ چین کنم)

      الان من از مد append استفاده کردم، مشکل اینه که ذخیره شدن تو فایل از پایین به بالاست (آخرین متغیر تو اولین خط ذحیره میشه)؛ راهی هست که اولین متغیر تو اولین خط بیاد؟

      دیدگاه


        #4
        پاسخ : ذخیره متغیر در فایل خارجی در C

        خب بنظر میرسه که شما اصلا نیاز نداری که متغیر رو تو فایل ذخیره کنی و فقط میخوای مقدار متغیر در بین چند کال باقی بمونه!! اگه اینطوریه دوراه ÷یشنهاد میکنم:
        1- بهترین روش استفاده از متغیر استاتیک هست. موقع تعریف متغیر داخل تابع از کلمه کلیدی static استفاده کن
        2- از یه متغیر عمومی استفاده کن داخل تابع(این متغیر بالای تمام توابع و حتی قبل از main باید تعریف بشه)

        دیدگاه


          #5
          پاسخ : ذخیره متغیر در فایل خارجی در C

          ممنون از جواب دوباره

          این برنامه یک مثال بود
          کاری که میخوام بکنم اینه که مقادیر یک متغیر موجود تو یه برنامه رو در طول اجراش تو یه فابل text ذخیره کنم
          بعدا میخوام تو یه برنامه دیگه از این فایل استفاده کنم...برای همین تا حدودی ترتیبش مهم بود

          سوال دیگه (و مهمتر) واسه خوندن از فایله
          مثلا یه فایل txt داریم به این صورت:
          4
          3
          2
          1

          میخوام این عددها رو تو متغیر بریزم
          مشکل اینه که این عمل خوندن فایل تو یه تابع انجام میشه (فرضا تو یه فایل جداگانه از main)
          اگه بخوام اینطوری بنویسم تو تابع مربوطه
          کد:
          FILE *ifp;
          ifp=fopen("./test.txt", "r");
          fscanf(ifp,"%d",&c[i]);
          با توجه به اینکه تابع چند بار call میشه، فقط اولین متغیر (4) هر دفعه خونده میشه (چیزی مثل append که تو write هست پیدا نکردم)
          پیشنهادی دارین برای این قسمت که چحوری یک کاری بکنم از ادامه فایل بخونه؟

          دیدگاه


            #6
            پاسخ : ذخیره متغیر در فایل خارجی در C

            اشاره گر به فایل ifp تا وقتی که فایلو نبندین(fclose) به موقعیت آخرین جایی از فایل که خوندین اشاره میکنه ، در نتیجه باید اعداد بعدی رو هم بتونید بخونید. همینطور بهتره که موقع خوندن از فایل تکست حواستون به اون اینترهای آخر خط هم باشه.

            دیدگاه

            لطفا صبر کنید...
            X