[ بستن ]

سیستم وبلاگ پارسی باکسسیستم مدیریت فروش هاست و دامینسایت شخصی محسن داوری برنامه نویس PHPهماهنگی با موتورهای جستجو , رنکینگ گوگل , google pagerank , page rank , seo , search

  انجمن اینترنتی برنامه نویسان  
  برنامه نویسی و رفع اشکال و نرم افزارها  
 
منوی اصلی

بخش ها

نویسندگان

آرشیو

آمار
بازدید امروز : 55
بازدید دیروز : 48 ‍
بازدید این ماه : 1138
بازدید امسال : 13701
بازدید کل : 24765
تعداد پست ها : 87
تعداد لینک های لینکستان : 26
تعداد نظر سنجی های وبلاگ : 2

 
سخن روز
سلام دوستان از امروز برای خواندن مطالب این وب سایت می توانید در خبرنامه ویژه ما عضو شوید تا رمز مطالب برای شما ارسال شود. هنگام عضویت در خبرنامه ویژه به جای اسم نام و استان خود را ( محمد حسن بهجت (یزد)) نوشته و بجای ایمیل هم ایمیل یاهو خود را وارد کنید. بقیه دوستان عضو هم آی دی یاهو ما را اد کنند. کلیه دوستان می توانند مقالات و نوشته های خود را در رابطه با علوم کامپیوتری به ایمیل وب سایت ارسال نمایند تا در وب سایت برای نمایش عموم گذاشته شود... خواهشمند است در پایان مقالات خود نام و نام خانوادگی و استان و رشته تحصیلی و سن خود را ذکر نمائید.به مقالات برتر مبلغ ای اهدا خواهد شد. با تشکر _ مدیریت سایت محمد حسن بهجت شماره ارسال مسیج : 09133522892


اشاره گر ها/ قسمت 3
   عملیات روی اشاره‌گرها

      عملیات متداولی که روی اشاره‌‌گرها انجام می‌شوند ، عبارتند از :

الف) عمل انتساب

      در مورد اشاره‌گرها نیز مشابه سایر انواع متغیرها ، می‌توان مقداری را به یک متغیر اشاره‌گر نسبت داد . به هر حال بطوری که مشاهده شده ، این عمل مانند سایر متغیرها گسترده نمی‌باشد . به یک متغیر اشاره‌گر می‌توان آدرس یک متغیر یا مقدار صفر را نسبت داد .

 

ب) اعمال محاسباتی

      زبان C ، اجازه می‌دهد که یک مقدار صحیح را به یک اشاره‌گر اضافه کنید و یا از آن کسر نمایید ؛ برای مثال اگر p یک متغیر اشاره‌گر باشد ، عباراتی مشابه :

p+5  ,  p-5

معتبر است . ولی باید به مفهوم آن دقت کافی شود . برای مثال مفهوم p+5 آن است که به پنج شئی بعد از شئی که p به آن اشاره می‌کند ، اشاره خواهد کرد ؛ بنابراین اگر p آدرس متغیری از نوع :

 short  int  p ;

را داشته باشد که دو بایت حافظه اشغال می‌کند ، عبارت p+5 به :

 (10 = 2×5)  10 بایت    

بعد از آدرسی که p معرف آن است ، اشاره خواهد کرد . حال اگر p ، آدرس متغیری از نوع :

float  p ;

 را در خود داشته باشد ، عبارت p+5  به :

20 بایت  (20 = 4×5)

 بعد اشاره خواهد نمود . بنابراین p+5 همیشه به مفهوم به اندازه 5 شئی بعد از آنکه p  اشاره می‌کند ، خواهد بود . پس کامپایلر ، 5 را در بزرگی یا طول شئی مورد نظر برحسب بایت ضرب می‌کند و آن را بر محتوای p اضافه می‌کند ، تا آدرس جدید بدست آید . بنابراین عملیات محاسباتی روی اشاره‌گرها ، چهار عمل افزودن ، کاستن ، ++ و --  می‌باشد .

اگر دو متغیر اشاره‌گر از یک نوع باشند ، یعنی اشیایی که اشاره‌گرهای مزبور به آن اشاره می‌کنند ، یکسان باشند ، می‌توان مقادیر آن دو اشاره‌گر را از هم تفریق کرد ؛ برای مثال مقدار :

&a[3] - &a[0]

برابر 3 خواهد بود . درواقع این تفاضل تعداد اشیاء بین این دو اشاره‌گر را معرفی می‌نماید .

 بازکردن و بستن فایل

      هر فایل قبل از اینکه بتواند مورد استفاده قرار گیرد ، باید باز گردد . مواردی که در حین بازکردن فایل مشخص می‌شوند عبارتند از :

-  نام فایل .

-  نوع فایل ازنظر ذخیرة اطلاعات text) یا . (binary

-  نوع فایل ازنظر ورودی ـ خروجی (آیا فایل فقط به‌عنوان ورودی است ، آیا فقط به‌عنوان خروجی است یا هم به‌عنوان ورودی است و هم به‌عنوان خروجی) .

یک فایل ممکن است طوری باز شود که فقط عمل نوشتن اطلاعات بر روی آن مجاز باشد . به چنین فایلی ، فایل خروجی گفته می‌شود . اگر فایل طوری باز گردد که فقط عمل خواند اطلاعات از آن امکان‌پذیر باشد به چنین فایلی ، فایل ورودی گفت می‌شود . اگر فایل طوری باز شود که هم عمل نوشتن اطلاعات بر روی آن مجاز باشد و هم عمل خواندن اطلاعات از آن ، به چنین فایلی ، فایل ورودی و خروجی گفته می‌شود . اگر فایلی قبلاً وجود نداشته باشد ، در حین بازشدن باید به‌عنوان فایل خروجی باز شود . اگر فایلی قبلاً وجود داشته باشد و به‌عنوان خروجی بازگردد ،‌ اطلاعات قبلی آن از بین می‌رود .

تابع fopen برای باز کردن فایل مورد استفاده قرار گرفته و دارای الگوی زیر است :

FILE   *fopen (char *filename , *mode)

      در الگوی فوق ، filename به رشته‌ای اشاره می‌کند که حاوی نام فایل و محل تشکیل یا وجود آن است . نام فایل داده از قانون نامگذاری فایل برنامه تبعیت می‌کند و شامل دو قسمت : نام و انشعاب است که بهتر است انشعاب فایل داده ، dat انتخاب گردد . محل تشکیل یا وجود فایل می‌تواند شامل نام درایو و یا هر مسیر موجود روی دیسک باشد . mode مشخص می‌کند که فایل چگونه باید باز شود (ورودی ، خروجی و یا ...) . مقادیری که می‌توانند بجای mode در تابع fopen  قرار گیرند ، همراه با مفاهیم آنها در جدول زیر آمده‌اند .

مقادیر معتبر mode در تابع  fopen( )

mode

مفهوم

r (rt)

فایلی از نوع text را به‌عنوان ورودی باز می‌کند .

w (wt)

فایلی از نوع text را به‌عنوان خروجی باز می‌کند .

a (at)

فایل را طوری باز می‌کند که بتوان اطلاعاتی را به انتهای آن اضافه نمود .

rb

فایلی از نوع باینری را به‌عنوان ورودی باز می‌کند .

wb

فایلی از نوع باینری را به‌عنوان خروجی باز می‌‌کند .

ab

فایل موجود از نوع باینری را طوری باز می‌کند که بتوان اطلاعاتی را به انتهای آن اضافه نمود .

r + (r+t)

فایل موجود از نوع text را به‌عنوان ورودی و خروجی باز می‌کند .

w + (w+t)

فایلی از نوع text را به‌عنوان ورودی و خروجی باز می‌کند .

a + (a+t)

فایل موجود از نوع text را به‌عنوان ورودی و خروجی باز می‌کند .

r + b

فایل موجود از نوع باینری را به‌عنوان ورودی و خروجی باز می‌کند .

a + b

فایل احتمالاٌ موجود از نوع باینری را به ‌عنوان ورودی و خروجی باز می‌کند  .

w + b

فایل از نوع باینری را به ‌عنوان ورودی و خروجی باز می‌کند .

 

برای باز کردن فایل باید یک اشاره‌گر از نوع فایل تعریف گردد تا به فایلی که توسط تابع fopen باز می‌شود اشاره نماید . اگر فایل به دلایلی باز نشود این اشاره‌گر برابر با NULL خواهد بود . به‌عنوان مثال ،‌ دستورات زیرا را درنظر بگیرید :

FILE  *fp ;                              (1)

(2)   fp = fopen ("A : test" , "w") ;

دستور (1) ، متغیر fp را از نوع اشاره‌گر فایل تعریف می‌کند و دستور (2) فایلی به نام text را بر روی درایو A ایجاد می‌نماید (چون حالت "w" ، فایل را به‌صورت خروجی باز می‌کند) .

برای تشخیص این که آیا فایل با موفقیت باز شده است یا خیر می‌توان اشاره‌گر فایل را با NULL مقایسه کرد . NULL ماکرویی است که در فایل ‌stdio.h تعریف شده است و با حروف بزرگ بکار می‌رود . اگر اشاره‌گر فایل برابر با NULL باشد بدین معنی است که فایل باز نشده است :

if (( fp=fopen ("A : test" , "w"))= NULL )

{

printf ("cannot open file \ n") ;

exit (0) ;

}

 

      پس از اینکه برنامه‌نویس کارش را با فایل تمام کرد ، باید آن را ببندد . بستن فایل توسط تابع  fclose انجام می‌شود که دارای الگوی زیر است :

int  fclose (FILE  *fp)

در الگوی فوق ، fp به فایلی اشاره می‌کند که باید توسط تابع fclose   بسته شود . به‌عنوان مثال ، دستور :

fclose (p) ;

موجب بستن فایلی می‌شود که p به آن اشاره می‌کند .

ادامه دارد ....


نوشته شده توسط محمد حسن بهجت | نظرات [0] | لینک به این مطلب |


 
تابلوی گفتمان



نظرسنجی

پیوندها

لوگو هـــا

خبرنامه ها





خبرنامه ویژه





خبرنامه عمومی


لوگو دوستان

پیوندهای روزانه

 
Copy Right 2007 ParsiBox.com ( Designed By ParsiBox Master Design )