PDA

View Full Version : ارسال اشاره گر فايل به صورت ارجايي



first_squit
پنج شنبه 03 اردیبهشت 1388, 13:57 عصر
با سلام


در يك برنامه مي خوام اشاره گر به فايلي رو به صورت ارجاعي به آن ارسال كنم مي شه فرم كلي اين قضيه رو بيان كنيد (‌ با مثال (اگه امكان داره از C++ مثال بزنيد (fstream) ))

كار اصلي اينه كه در يك تابع با هر بار فراخواني يك خط از يك فايل خوانده مي شه .مي خوام در فراخواني هاي مجدد خطوط بعدي از فايل خوانده بشه .

متشكرم .:قلب:

tdkhakpur
پنج شنبه 03 اردیبهشت 1388, 15:15 عصر
بیبنید شما فایل رو بصورت "rb+" باز کرده و تاز تابع زیر استفاده کنید.
FILE *fp;
fp = fopen(filename, "rb+");
// حال تابع مور د نظر
void ReadNextLine(char *line, FILE *fp)
{
static char line[512], ch;
int c=0;
while(!feof(fp))
{
ch = fgetc(fp);
while(ch!=EOF && ch!='\n' && ch!=10 )
{
line[c++] = ch;
ch = fgetc(fp);
}
}
}

first_squit
جمعه 04 اردیبهشت 1388, 10:04 صبح
با تشكر از پاسخ شما

بخشيد يه سئوال ديگه

1- ايا اشيائي كه توسط كلاس fstream توليد مي شه قابليت دسترسي با اشاره گر ها رو از توابع ديگر داره


ifstream inS("path" ,ios::in)

الان من مي خوام يه اشاره گر به inS بدم آيا مي شه از اين اشاره گر براي دسترسي به خط جاري در فايل مورد نظر داشت


متشكرم

shtnava
جمعه 04 اردیبهشت 1388, 12:35 عصر
اگه می خای بتونی به فایلت به صورت direct دست پیدا کنی نمیتونی از این روش استفاده کنی

shtnava
جمعه 04 اردیبهشت 1388, 12:40 عصر
یه تاپیک زدم تو c/c++ اگه میخوای ارجاعت روی یه فایل باز باشه باید انا روتعیین کنی

first_squit
جمعه 04 اردیبهشت 1388, 17:12 عصر
ببخشيد بنده منظور جناب عالي رو از اين جمله درك نمي كنم


یه تاپیک زدم تو c/c++ اگه میخوای ارجاعت روی یه فایل باز باشه باید انا روتعیین کنی


مي شه واضح تر بگيد . :متفکر: كدوم تاپيك ؟

tdkhakpur
جمعه 04 اردیبهشت 1388, 17:50 عصر
دوست گرامی اشاره گر به یک شیئ یا به هر متغیر از هر نوع که باشه همون اشاره گره.
توجه داشته باشید که اگه یه اشاره گر برای یک شیئ تعریف میکنید کامپیوتر فقط یه عمل رو انجام میده اختصاص 4 بایت از حافظه اش.
حال نوبت شماست که آدرس هر شیئ یا متغییر از نوع خود اشاره گر رو درش قرار بدید.
و پاسخ کلی شما اینه >اشاره گر شما همون متغییر اولی هست که فقط اسم دیگه داره و میتونی هر کاری که متغییر قبلی میکرد با اون هم انجام بدید.

first_squit
یک شنبه 06 اردیبهشت 1388, 01:14 صبح
دوست گرامی اشاره گر به یک شیئ یا به هر متغیر از هر نوع که باشه همون اشاره گره.
توجه داشته باشید که اگه یه اشاره گر برای یک شیئ تعریف میکنید کامپیوتر فقط یه عمل رو انجام میده اختصاص 4 بایت از حافظه اش.
حال نوبت شماست که آدرس هر شیئ یا متغییر از نوع خود اشاره گر رو درش قرار بدید.
و پاسخ کلی شما اینه >اشاره گر شما همون متغییر اولی هست که فقط اسم دیگه داره و میتونی هر کاری که متغییر قبلی میکرد با اون هم انجام بدید.پس مي شه بگيد چرا كد زير خطا مي ده


ifstream infile("..\\inputFiel.txt" , ios::in);
FILE *p ;
p = infile; يا كد زير


ifstream infile("..\\inputFiel.txt" , ios::in);
ifstream *p ;
p = infile; و نمي شه اشاره گري به اين فايل ها داشت