تدریس خصوصی آنلاین و از راه دور برنامه نویسی زبان 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> int main(){ FILE *fp; getch(); |
در مثال بالا حالت فایل را به صورت نوشتن درون فایل قرار دادیم, برای دیدن برخی از مهمترین این رویداد ها به جدول 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> int main(){ FILE *fp, *fp2; getch(); |
خروجی :
Enter the char : A your char is : A |
تحلیل :
در برنامه بالا در مرحله اول یک فایل تعریف کردیم و آن را در حالت w که همان حالت ایجاد فایل و نوشتن در آن است ساختیم و سپس یک کارکتر را از کاربر دریافت کرده و به کمک تابع putc() آن را درون فایل ذخیره کردیم, سپس یک فایل دیگر تعریف کردیم و حالت آن را روی r قرار دادیم, یعنی میخواهیم, از آن اطلاعات را دریافت کنیم, سپس به آن را به کمک تابه getc() درون متغییر ch ریختیم و آن را چاپ کردیم.
تدریس خصوصی آنلاین و از راه دور برنامه نویسی زبان C(سی)...[کــــــلیک کنید]
ورودی و خروجی رشته ها :
برای گرفتن یک رشته از فایل میتوان از تابع fgetc() استفاده کرد, طریقه استفاده از این تابع به صورت زیر است :
fgetc (FILE *fp) |
و برای ذخیره کردن یک رشته از فایل, میتوان از تابع fputc() استفاده کرد, طریقه استفاده از این تابع به صورت زیر است :
fputc (char ch, FILE *fp) |
مثال :
#include <stdio.h> int main(){ FILE *fp, *fp2; getch(); |
خروجی :
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(سی) ...[کـــلیک کنید]
جلسه ششم | کار با فایل در زبان برنامه نویسی C
فرمت:PDF (لطفا در صورت خرابی لینک دانلود گزارش بدید که لینک اصلاح کنیم)
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |