ايران ويج

نسخه‌ی کامل: لطفا یکی بهم بگه چه جوری با تابع fseek میتونم کار کنم
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
من می خواهم مکان نمای فایل را به اندازه دلخواه (به اندازه چند برابر struct ی که تعریف کرده ام ) حرکت بدهم .
و بعد از ان از این نقطه از فایل کارم را ادامه بدهم من فایلم را
("+fopen ( "data2.ph" , "ab
تعریف کرده ام.
حالا میخواهم در مکان struct * n مکان نمای فایل را قرار دهم .
n نقطه مورد نظر است.
اگه راهنماییم کنید ممنون میشم.
با تشکر
سلام
منظورتتونو از تابع fseek نفهمیدم..ولی توی c++ برای چنین چیزی از تابع seek و tell استفاده میکنیم.


seek :اشاره گر را به محلی که میخوایم میبره
tell :آدرس محل اشاره گر رابه ما نشون میده

دو تا اشاره گر داریم:اشاره گر خواندن و اشاره گر نوشتن
پس :
- seekgاشاره گر خواندن را به جایی که میخواهیم میبره
- tellg محل اشاره گر خواندن را میگه
- seekpاشاره گر نوشتتن را به جایی که میخوایم میبره
-tellp محل اشاره گر نوشتن را میگه
دستور seek دوتا آرگومان دارد آرگومان اول تعداد بایتهایی که باید حرکت کنه و آرگومان دوم مبدا حرکت(مثلا seekg(10,ios::beg)که از ابتدای فایل ده بایت حرکت میکنه یا seekg(-10,ios::end) که از انتها ده بایت به عقب میاد)

شما باید با استفاده از sizeof تعداد بایت هر شئ struct را به دست بیاری
مثلا اگر نام شئ sssباشد :
int p=sizeof(sss);

int position=(n-1)*p;

infile.seekp(position); h (اگر آرگومان دوم را ننویسیم پیش فرضش ابتدای فایل است)