PDA

View Full Version : سوال: گرفتن string از دستور ifstream



aidin110
جمعه 06 مرداد 1391, 00:05 صبح
سلام.
دوستان ما چطور میتونیم با ifstream یه رشته رو تو یه متغییر قرار بدیم ؟؟؟ به کد زیر توجه کنید....

char name[80];
cin.get(name,80); // FARZ KONID INJA YE HAMCHIN CHIZI VARED KONIM : aidin 110 , TAVAJO KONID K INJA AZ SPACE ESTEFADE KARDIM
ofstream SAVE ("file.txt");
SAVE << name;

//HALA MIKHAIM HAMIN RESHTE RO MOJADAD TO NAME GHARAR BEDIM , YANI HAMUN : aidin 110
//K KODESH MIDHE :
ifstream OPEN ("file.txt");
OPEN >> NAME;
// BA DASTOR FOGH FAGHAT aidin TO NAME GHARAR MIGIRE DG 110 GARAR NEMIGIRE CHON BEYNESHON SPACE HASTESH ,
//IN MOZO RO CHETORI MITUNIM HALESH KONIM ????

tdkhakpur
جمعه 06 مرداد 1391, 01:46 صبح
با کد زیر میتونی به هدفت برسی.
اما فایلی که جستجو میشه باید بررسی بشه اگه باینری باشه آخر رشته به 0 ختم میشه و باید از 0 استفاده کنی اما اگه فایل رشته ای هسته کاراکتر space رو در آخرین پارامتر بزار.
دومین پارامتر طول بافر هست.
char tmp[225]={0};
ifstream f;
f.open("1.txt", 0);
f.get(tmp, 225, ' ');
f.close();

aidin110
جمعه 06 مرداد 1391, 13:57 عصر
دست گلتون درد نکنه ....
ولی با همون 0 کار کرد.
حالا شما فرض کنید ما تو فایلی که باز میشه یه همچین متنی باشه :
//salam chetori
//halet khube?
یعنی تو هر خط یه رشته باشه و من بخوام با حلقه for تو هر بار فقط یک خط رو بذارم تو tmp اینو باید چطوری انجام بدم؟؟؟ (اینطوری کل متن تو tmp قرار میگیره ، میخوام تو هر بار یه خط تو tmp قرار بگیره... )

ساغول : tdkhakpur :چشمک: :لبخندساده:

#target
جمعه 06 مرداد 1391, 15:48 عصر
یعنی تو هر خط یه رشته باشه و من بخوام با حلقه for تو هر بار فقط یک خط رو بذارم تو tmp اینو باید چطوری انجام بدم؟؟؟
با تابع getline ی خط از فایلو میگیره
f.open("1.txt", 0);
f.getline(tmp, 225);

aidin110
جمعه 06 مرداد 1391, 16:02 عصر
با تشکر از target عزیز :)