آموزش کار با موقعیت سنج فایل در c++

آموزش کار با موقعیت سنج فایل در c++

موقعیت سنج فایل :

وقتی که عملیات خواندن یا نوشتن فایل صادر می شود باید مشخص باشد که این عملیات

در کدام محل از فایل صورت پذیرد. برای این منظور از موقعیت سنج استفاده شده است.

موقعیت سنج یک عدد صحیح مثبت که محل جاری در فایل را نشان می دهد ( توابع بازگشتی در c++ )

وقتی که فایل باز می شود یک موقعیت سنج برای آن در نظر گرفته می شود.

اگر فایل به صورت r یا w باز شود موقعیت سنج به ابتدای فایل اشاره میکند و در حالت a

موقعیت سنج به انتهای آن اشاره می کند.با هربار عملیات خواندن یا نوشتن موقعیت سنج

به تعداد بایت خوانده شده یا نوشته شده به سمت انتهای فایل پیش می رود.

آموزش کار با دستور تابع feof در c++ :

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

و در غیر این صورت صفر را بازمی گرداند. ( کار با اشاره گرها در c++ )


feof ( اشاره گر فایل )
    while ( ! feof (fp) )
       {
         .
         .
         .
       }
این حلقه تا به انتهای فایل نرسیم تکرار می گردد

آموزش کار با دستور تابع fseek در c++ :

این تابع برای تغییر دادن محل موقعیت سنج استفاده می شود. میزان تغییر یک عدد صحیح

می باشد ” بر حسب بایت ” . اگر مثبت باشد موقعیت سنج به سمت انتهای فایل پیش می رود

و اگر منفی باشد به سمت ابتدای فایل باز میگردد. مبدا حرکت یکی از موارد زیر هستند.


fseek ( مبدا حرکت , میزان تغییر , اشاره گر فایل )

SEEK_SET یا 0 ابتدای فایل

SEEK_CUR یا 1 موقعیت جاری

SEEK_END یا 2 انتهای فایل

مثال ها :

fseek ( fp , 0 , 0 )       ابتدای فایل

fseek ( fp , -10 , SEEK_END )        از انتهای فایل 10 تا به عقب بر میگردد

fseek ( fp , -size of(student) , SEEK_CUR )        به اندازه طول ساختمان به سمت ابتدای فایل باز میگردد

آموزش کار با دستور تابع ftell در c++ :

محل موقعیت سنج را برمیگرداند.


ftell ( اشاره گر فایل ) ;

آموزش کار با دستور تابع fputs در c++ :

این تابع برای نوشتن رشته در فایل متنی استفاده میشود.


fputs ( اشاره گر فایل , رشته ) ;

آموزش کار با دستور تابع fgets در c++ :

دستور زیر که fp به آن اشاره میکند 20 کاراکتر را میخواند. اگر در بین این 20 کاراکتر <enter>

وجود داشته باشد فقط کاراکترهای قبل از آن و خود ENTER خوانده می شوند. این تابع برای چاپ

در فایل به صورت زیر مورد استفاده قرار میگیرد.


fgets ( اشاره گر فایل , تعداد کاراکتر , نام رشته );
     fgets( s , 20 , fp );

آموزش کار با دستور تابع fprintf در c++ :

این تابع مثل printf است اما اطلاعات در فایل نوشته میشود.


fprintf ( لیست مقادیر , " کاراکترهای کنترلی " , اشاره گر فایل );
      fprintf( fp , " %d %f " , &a , &b );

آموزش کار با دستور تابع fscanf در c++ :

مانند تابع scanf است اما اطلاعات از فایل خوانده میشود.


fscanf ( لیست مقادیر , " کاراکترهای کنترلی " , اشاره گر فایل );
     fscanf( fp , " %d %f " , &a , &b );

آموزش کار با دستور تابع fwrite در c++ :

این تابع برای نوشتن متغیرهایی از نوع ساختمان در فایل باینری استفاده میشود. کار با لیست پیوندی در c++


fwrite ( اشاره گر فایل , تعداد , اندازه متغیر , آدرس متغیر ساختمان );
     fwrite( &stu , size of(student) , 1 , fp ); 

نکته :

دستور بالا متغیر stu را که از نوع ساختمان student است در فایلی که fp به آن اشاره می کند ( حافظه پویا در c++ )می نویسد.

آموزش کار با دستور تابع fread در c++ :

این تابع برای خواندن متغیرهایی از نوع ساختمان در فایل باینری است.


fread ( اشاره گر فایل , تعداد , اندازه متغیر , آدرس متغیر ساختمان );
     fread( &stu , size of(student) , 1 , fp );