من می خواهم مکان نمای فایل را به اندازه دلخواه (به اندازه چند برابر 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 (اگر آرگومان دوم را ننویسیم پیش فرضش ابتدای فایل است)