menusearch
javapro.ir

جلسه ششم | آموزش کار با فایل در زبان برنامه نویسی C

جستجو
پنج شنبه ۲۹ اردیبهشت ۱۴۰۱ | ۷:۴۸:۴۶
۱۴۰۰/۱۲/۵ پنج شنبه
(1)
(0)
جلسه ششم | آموزش کار با فایل در زبان برنامه نویسی C
 جلسه ششم | آموزش کار با فایل در زبان برنامه نویسی C

 

دوره صفر تا پیشرفته آموزش رایگان زبان برنامه نویسی C در سایت آموزشی جاواپرو

 

 

مدرس زبان برنامه نویسی C

 

جلسه ششم | آموزش کار با فایل در زبان برنامه نویسی C


فایل :
   اول از همه باید بدانید که تمامی متغییر ها در ram که مخفف شده عبارت random acess memory که ترجمه شده آن فضای تصادفی حافظه است, ذخیره میشود, و اگر برنامه شما بسته شود و از اول اجرا شود, تمامی اطلاعات قبلی از بین میروند, پس ما نیاز به حافظه ای داریم که به کمک آن بتوانیم اطلاعات را در آن برای همیشه ذخیره کنیم. برای این کار از فایل ها کمک میگیریم که در ادامه طریقه یا روش استفاده از آنها را به شما آموزش میدهیم.

 

 

انواع فایل از نوع اطلاعات :
   فایل ها به دو دسته تقسیم میشوند, فایل‌‌‌‌های باینری و فایل‌‌‌‌های متنی, فرق این در در موارد زیر ذکر شده است :
1-    نحوه ذخیره اطلاعات
2-    تعیین انت‌‌‌‌های خط

 


نحوه ذخیره اطلاعات :
    فایل‌‌‌‌های متنی یا به اصطلاح text ها به صورت کارکتر‌‌‌‌های به هم چسبیده ذخیره میشوند ولی فایل‌‌‌‌های باینری به همان صورتی که هستند ذخیره میشوند, به طور مثال عبارت 1234 در فایل متنی به صورت کارکتر اعداد 1234 ذخیره میشود, ولی در فایل‌‌‌‌های باینری, به صورت یک عدد ذخیره میشوند.

 


تعیین انت‌‌‌‌های خط :
    این فرق انچنان برگی نیست ولی در انت‌‌‌‌های فایل‌‌‌‌های متنی عبارت NULL یا همان \0 ذخیره میشود ولی در فایل‌‌‌‌های باینری به جدا بودن سلول هر قسمت حافظه, چیزی در انت‌‌‌‌های متن نوشته نمیشود.

 

باز کردن فایل :
   هر فایل قبل از اینکه باز بشود, نیاز دارد که نوع فایل و مقادیر ورودی آنها مشخص شود.

 

FILE *fopen (char *filename, *mode)



برای اینکه بتوانیم فایل ها را بخوانیم یا چیزی درون آنها بریزیم, باید از تابع fopen() استفاده کنیم که در کتابخانه stdlib.h وجود دارد.
برای مثال اگر بخواهیم فایلی به اسم javapro بسازیم و حالت آن را به صورت نوشتن در نظر بگیریم, از کد زیر استفاده میکنیم.

 

#include <stdio.h>
#include <conio.h>

int main(){

  FILE *fp;
  fp = fopen("javapro.txt","w");

  getch();
  return 0;
}

 

در مثال بالا حالت فایل را به صورت نوشتن درون فایل قرار دادیم, برای دیدن برخی از مهمترین این رویداد ها به جدول 1-1 مراجعه کنید.

 

mode مفهوم
rفایلی موجو را برای خواندن آماده میکند
wفایلی جدید میسازد و برای نوشتن آمکاده میکند
rbفایل باینری موجود را برای خواندن اماده میکند
wb فایل باینری جدیدی میسازد و برای نوشتن در آن آماده میکند

جدول 1-1

 

بستن فایل :
   بعد از تمام شدن کار برنامه نویس با فایل, بهتر است آن را ببندد, و برای بستن فایلی بخصوص از تابع زیر استفاده میشود :

 

fclose (FILE name);


و یا اگر چندین فایل را باز کردید و میخواهید همه آنها را با هم دیگر ببندید و به فایلی خاص اشاره نکنید, میتوانید از تابع زیر استفاده کنید :

 

fcloseall() 


ورودی و خروجی کارکتر ها در فایل :
   برای گرفتن یک کارکتر از فایل میتوان از تابع getc() استفاده کرد, طریقه استفاده از این تابع به صورت زیر است :

 

getc (FILE *fp)

 

و برای ذخیره دادن یک کارکتر از فایل, میتوان از تابع  putc() استفاده کرد, طریقه استفاده از این تابع به صورت زیر است :

 

putc (char ch, FILE *fp)

 

مثال :

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>

int main(){

  FILE *fp, *fp2;
  char ch;
  fp = fopen("javapro.txt","w");
  printf("Enter the char : ");
  scanf("%c", &ch);
  putc(ch, fp);
     sleep (3000);
  fclose(fp);
  fp2 = fopen("javapro.txt","r");
  ch = getc(fp2);
  printf("\n your char is : %c", ch);

  getch();
  return 0;
}

 

خروجی :

 

Enter the char : A

your char is : A


تحلیل :
   در برنامه بالا در مرحله اول یک فایل تعریف کردیم و آن را در حالت w که همان حالت ایجاد فایل و نوشتن در آن است ساختیم و سپس یک کارکتر را از کاربر دریافت کرده و به کمک تابع putc() آن را درون فایل ذخیره کردیم, سپس یک فایل دیگر تعریف کردیم و حالت آن را روی r قرار دادیم, یعنی میخواهیم, از آن اطلاعات را دریافت کنیم, سپس به آن را به کمک تابه getc() درون متغییر ch ریختیم و آن را چاپ کردیم.

 

ورودی و خروجی رشته ها :
برای گرفتن یک رشته از فایل میتوان از تابع fgetc() استفاده کرد, طریقه استفاده از این تابع به صورت زیر است :

 

fgetc (FILE *fp)


و برای ذخیره کردن یک رشته از فایل, میتوان از تابع fputc() استفاده کرد, طریقه استفاده از این تابع به صورت زیر است :

 

fputc (char ch, FILE *fp)

 

مثال :

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>

int main(){

  FILE *fp, *fp2;
  char ch[10];
  fp = fopen("javapro.txt","w");
  printf("Enter the string : ");
  scanf("%s", &ch);
  fputc(ch, fp);
     sleep (3000);
  fclose(fp);
  fp2 = fopen("javapro.txt","r");
  ch = fgetc(fp2);
  printf("\n your string is : %s", ch);

  getch();
  return 0;
}

 

خروجی :

 

Enter the string : Arvin

your string is : Arvin


تحلیل :
   در برنامه بالا در مرحله اول یک فایل تعریف کردیم و آن را در حالت w که همان حالت ایجاد فایل و نوشتن در آن است ساختیم و سپس یک رشته را از کاربر دریافت کرده و به کمک تابعfputc() آن را درون فایل ذخیره کردیم, سپس یک فایل دیگر تعریف کردیم و حالت آن را روی r قرار دادیم, یعنی میخواهیم, از آن اطلاعات را دریافت کنیم, سپس به آن را به کمک تابه fgetc() درون متغییر ch ریختیم و آن را چاپ کردیم.

 

حذف فایل :
   برای حذف یک فایل از تابع remove() استفاده میکنیم, که طریقه استفاده از این تابع در متن زیر امده است :

 

remove (char *filename)


به طور مثال اگر بخواهیم, فایلی با اسم javapro.txt را حذف کنیم, از کد زیر استفاده میکنیم:

 

remove("javapro.txt");

 

تمرینات :
1-    برنامه ای بنویسید که رشته ای را از کاربر دریافت کند و تمامی حروف آن رشته را درون فایلی ذخیره کند.
2-    برنامه بنویسید که شماره 10 نفر را گرفته و آنها را از آخر به اول درون فایلی بنویسد
3-    تفاوت فایل باینری با فایل متنی را بگویید
4-    برنامه ای بنویسید که یک رشته و اسم یک فایل را بگیرد, و چک کند که اگر رشته مورد نظر درون فایل وجود داشت, آن را حذف کند
5-    برنامه ای بنویسید که شکل زیر را درون فایلی ذخیره کند


*     
**
***
****
*****


6-    تابعی بنویسید که فایل تمرین قبلی را باز کند و شکل را در هر بار صدا زدن تابع, د رخروجی نمایش دهد

پیروز و موفق باشید

 


ادامه حیات سایت جاواپرو به حمایت مالی (دونیت) از طرف شما کاربر عزیز بستگی دارد....


 

 جلسه ششم | کار با فایل در زبان برنامه نویسی C

 

فرمت:PDF (لطفا در صورت خرابی لینک دانلود گزارش بدید که لینک اصلاح کنیم)

 

 

لینک دانلود آموزش رایگان اندروید

لینک دانلود

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

1 نظر
احسان کامرانی
چهارشنبه یازدهم اسفند ۰۰
پاسخ
()
()
احسان کامرانی
برنامه نويسي
هدر سایت
زودتر از دیگران از جدیدترین مطالب آموزشی برنامه نویسی جاواپرو اطلاع پیدا کن
 شاید برای شما کم اهمیت باشد; اما حمایت مالی به جاواپرو جان می‌دهد
سوالات متداول برنامه نویسی