PDA

View Full Version : خواندن چند سطر



behnam_akb
جمعه 09 دی 1384, 12:13 عصر
سلام

با استفاده از C++ چه طور می شه چند خط متن ورودی داشت و تشخیص داد هر متن متعلق به کدوم خطه

sh_roohani
شنبه 10 دی 1384, 15:07 عصر
یعنی چی؟ ممکنه بیشتر توضیح بدی. دقیقا می خوای چیکار کنی؟

behnam_akb
شنبه 10 دی 1384, 21:08 عصر
من باید این برنامه رو بنویسم::




برنامه ایی بنویسید که یه متن چند خطی را در C++ بگیرد و کلمات آن را مزتب کند و بگوید هر کلمه در کدام خط بوده !!!!!

behnam_akb
یک شنبه 11 دی 1384, 18:55 عصر
کسی نمی دونه؟

mzjahromi
یک شنبه 11 دی 1384, 19:16 عصر
آخه سوالت خیلی مبهمه ولی می تونی با GetLine یه خط رو بگیری حالا اگه چند تا خط می خوای چند بار GetLine رو صدا بزن. ...

sh_roohani
دوشنبه 12 دی 1384, 08:06 صبح
سلام عرض شد،
ببین، طبق قوانین سایت معذورم از اینکه برنامه کامل رو اینجا قید کنم. اما این کد:


vector<string> vecLines;
char lpszLine[1024];

while (!cin.eof())
{
cin.getline(lpszLine, 1023);
vecLines.push_back(lpszLine);
}

برای شما خط به خط متن ورودی رو در vecLines ذخیره می کنه.

و این کد:


vector<string> vecWords;
char lpszWord[1024];

while (!cin.eof())
{
cin.getline(lpszWord, 1023, ' ');
vecWords.push_back(lpszWord);
}

کلمه به کلمه متن ورودی رو در vecWords ذخیره می کنه.

حالا اینجا دو تا نکته هست:
1. شما باید با ترکیبی از اینا خودت راه مناسب رو برای تجزیه متن ورودی به خطوط و کلمات به دست بیاری.
2. همونطور که می بینی اینجا معیار تشخیص کلمه کاراکتر فاصله هست. حالا اگه معیار شما شامل علائم سجاوندی هم می شه، تا اونجایی که من می دونم باید از پردازش کاراکتر به کاراکتر متن استفاده کنی.

اما در مورد تشخیص اینکه کلمه مورد نظر در کدام خطوط اومده، مسئله به سادگی استفاده از تابع find کلاس basic_string هست.
مرتب سازی هم مسئله ایست علیحده که اگه لازمه توضیح عرض کنم.