جلسة دهم فایل - مهمترین توابع ورودی - خروجی فایل در زبان C

- <!-- /* Font Definitions */ @font-face {font-family:Mitra; panose-1:0 0 0 0 0 0 0 0 0 0; mso-font-charset:0; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:auto; mso-font-signature:3 0 0 0 1 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:253367993; mso-list-type:hybrid; mso-list-template-ids:-353177782 -2089140046 1663448402 -265375828 69474828 -1704933770 672163314 1959010356 -271783844 -987454040;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l1 {mso-list-id:407963482; mso-list-type:hybrid; mso-list-template-ids:1955213044 -1335973612 113036942 -1206779708 -526861992 -405213620 1893005702 211703336 -1001336394 -521999652;} @list l1:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l2 {mso-list-id:849877501; mso-list-type:hybrid; mso-list-template-ids:2010565400 221260182 -488317344 -1143022698 -1566306402 1633605444 -28009836 -1194135280 -1347918170 1371198436;} @list l2:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l3 {mso-list-id:883637149; mso-list-type:hybrid; mso-list-template-ids:1608398726 1496615670 -1503497484 2110788904 -236784000 1054900068 -1789877230 -625155498 -1378218754 -708160750;} @list l3:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l4 {mso-list-id:1883667224; mso-list-type:hybrid; mso-list-template-ids:405338314 675176030 -920244522 618666404 106176294 1350233946 -652828870 -276013292 -590848340 1508169194;} @list l4:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l5 {mso-list-id:1885558120; mso-list-type:hybrid; mso-list-template-ids:-1897790828 1228420796 1024613504 699984886 -634861612 -2050983712 -903292884 -1288412964 1699271684 1589288392;} @list l5:level1 {mso-level-number-format:bullet; mso-level-text:–; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l5:level2 {mso-level-start-at:171; mso-level-number-format:bullet; mso-level-text:–; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l6 {mso-list-id:1943758993; mso-list-type:hybrid; mso-list-template-ids:-1711099482 -1310155868 1915361936 -1993546898 -1480526920 -1911678080 -2141934122 -1747942972 -476817312 -307466544;} @list l6:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l7 {mso-list-id:1948999482; mso-list-type:hybrid; mso-list-template-ids:-611035080 -1138328120 -348767604 1883289316 -1234146284 -613803822 -1411459742 -1828184932 -170864046 1246243130;} @list l7:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l8 {mso-list-id:2049986334; mso-list-type:hybrid; mso-list-template-ids:-588457192 -473664076 20613316 770991394 1372888908 -999635602 -1035804786 -385329932 -2076958790 2074541938;} @list l8:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l9 {mso-list-id:2070569238; mso-list-type:hybrid; mso-list-template-ids:-1193668860 1976567366 -116747262 -1530394134 -731374516 351858814 -612887326 1757556846 1230809254 1531762672;} @list l9:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l9:level2 {mso-level-start-at:171; mso-level-number-format:bullet; mso-level-text:–; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} @list l10 {mso-list-id:2111269671; mso-list-type:hybrid; mso-list-template-ids:738229744 75259298 -1978349012 -1794573708 -906587654 -874982974 2102850376 -1580427096 -17153928 -2035792916;} @list l10:level1 {mso-level-number-format:bullet; mso-level-text:•; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Times New Roman";} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->

دهم   جلسة         

mohsen_mahyar@yahoo.com

mo-mah.perssianblog.ir

 

فایل

برای انتقال خروجی برنامه‌ها به حافظة پایدار

بدلیل

ماندگاری آنها

ایجاد ارتباط بین برنامه‌ها (فایل بعنوان ورودی)

انواع فایلها

 

متن ( Text )

باینری ( Binary )

 

ساختار اطلاعات در فایل متن

رشته‌ای از کاراکترها

برای مثال عدد 253 بصورت سه کاراکتر 2، 5 و 3 ذخیره شده و سه بایت را اشغال می‌کند.

 

 

 

 ختم می‌شود (CR/LF) هر سطر به کاراکترهای پایان سطر ختم.

پایان فایل را کاراکتری با کد اسکی 26 مشخص می‌کند.

 

 

 

 

مثال

 

Adgvvh12<CR/LF>1255346asd6633<CR/LF><\26>

 

 

ساختار اطلاعات در فایل باینری

داده‌ها به همان شکل موجود در حافظه ذخیره می‌شوند.

 

برای مثال عدد 253 چون یک عدد صحیح است در 2 بایت ذخیره می‌شود.

 

 

پایان سطر در فایل باینری مفهومی ندارد.

 

پایان فایل از طول آن مشخص می‌شود

(دیگر کاراکتر 26 پایان دهنده نیست)

 

 

مثال

 

♣:↓☻↨•¶9◘âèÿ‡A€Ө£¥:↓☻↨ âèÿ‡A€Ө£¥

 

داده‌هایی با نمایش قابل فهم نیستند

امکانات منطقی لازم دراستفاده از فایلها

 

         تعریف متغیر از نوع فایل

         تعیین محل و عنوان فیزیکی فایل

         باز کردن فایل

         خواندن داده از فایل ورودی

 

         نوشتن داده در فایل خروجی

         اضافه کردن داده به انتهای فایل

         آزمون انتهای فایل درهنگام خواندن

         آزمون انتهای سطر درهنگام خواندن (فقط فایل متن)

         قرار دادن <CR/LF> در انتهاى سطر (فقط فایل متن)

         بستن فایل

 

باز کردن فایل

FILE  * fopen(char *filename, char *mode)

 

خروجی تابع به یک متغیر اشاره‌گرفایل نسبت داده می‌شود.

filename : مسیر و نام فایل روی دیسک

mode : مشخص کنندة چگونگی باز شدن فایل

 

 

mode ترکیبی از کارکترهای:

r فایل ورودی

w فایل خروجی

a اضافه کردن داده به انتهای فایل

t فایل متن

b فایل باینری

+ فایل ورودی و خروجی

 

 

مثال

rt : فایل متن به عنوان ورودی

at : فایل متن برای اضافه کردن داده به انتهای فایل

wb : فایل باینری به عنوان خروجی

r+b : فایل باینری به عنوان ورودی و خروجی

 

 

 

مثال

FILE  *fp ;

fp = fopen (“c:\test.txt” , “wt”) ;

if (fp == NULL)

                        printf (“can not open file.”) ;

همیشه باید برای اطمینان، باز شدن موفقیت آمیز فایل را تست کرد.

 

بستن فایل

در انتهای کار با فایل آن را می‌بندیم.

fclose (FILE *fp) ;

مثال:

fclose (fp) ;

 

جلسة یازدهم

 

mohsen_mahyar@yahoo.com

mo-mah.perssianblog.ir

 

 

مهمترین توابع ورودی - خروجی فایل

fscanf

fprintf

fread

Fwrite

 

 

fprintf (FILE  *fp , “  عبارت 1” , عبارت 2 )

fscanf (FILE  *fp , “  عبارت 1” , عبارت 2 )

دقیقا همانند printf و scanf

با تفاوت

ذکر اشاره‌گر فایل در ابتدای آنها

 

 

مثال

FILE  *fp1 , *fp2 ;

fp1 = fopen (“c:\test.txt” , “rt”) ;

fp2 = fopen (“c:\ali.dat” , “wb”) ;

...

fscanf (fp1 , “%d %f %s” , &i , &f , str) ;

fprintf (fp2 , “%f, %s” , f , str) ;

 

 

 

fread و fwrite

بیشتر برای ورودی - خروجی رکورد استفاده می‌شود

ولی

در همة موارد می‌تواند بکار رود

و

سرعت بالایی نیز دارد.

 

fread (void *buffer, int num_byte ,

                           int count, FILE *fp)

buffer : محلی از حافظه که داده‌های خوانده شده باید در آن قرار گیرند.

num_byte : طول داده‌ای که باید خوانده شود.

count : تعداد عناصری (به طول num_byte) که باید از فایل خوانده شوند.

fp : اشاره‌گر به فایلی که باید از آن خوانده شود.مثال

struct  student  stud ;

fread ( &stud ,

/ 2 نظر / 229 بازدید
s

سلام من یه دانشجوی بدبخته مهندسی نرم افزارم استاد 8تا پروژه داده که هشت نمره داره تو رو خدا هرکدوم رو بلدین برام ایمیل کنید ممنون 1ورودی و خروجی در فایل 2 شبیه سازی پرتاب تاس 3فیبوناچی وفاکتوریل به روش بازگشتی وتکراری 4ارجاع با آرگومانها ومقدار 5مسیله maze 6تبدیل میانوندی به پسوندی 7الگوریتم dfs , وbfs با پشته وصف 8جمع دوچند جمله ا

محسن

سلام از مطالبی که گذاشتین ممنون من یه پرژه دارم به نام کوییزگیم.داستان اینجوریه که باید یه فایل سولات رو باز کنه و اونارو بگیره و به رندوم به کاربر نمایش بده،من نمی دونم چه طور میشه از فایل گرفت؟با ارایه میگیرم بعد تو خروجی که می خوام نمایش بدم کل سوالات رو چاپ میکنه،با رشته میزنم که فقط براکت چاپ میکنه،لطفا راهنماییم کنین و بگین چه طور اطلاعات رو از فایل بگیرم و بعد بهش بگم که مثلا خط اول از اونایی که گرفتی رو نمایش بده باتشکر