نمایش پست تنها
  #3  
قدیمی 01-28-2012
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,701
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض استفاده از stringstream در c++ کار با رشته ها تفاوت با cin

متوجه شدم چی میگی مساله اینتر زدن هست . اینتر رو هم میریزه توی استرینگ ! .
بنابراین یه راهش اینه که اون یه دونه اینتر رو دور بریزی مثل مثالی که خودت زدی والبته راه چیپی نیست ها خود c++ اینو داره cin.ignore() بنابراین کاسه داغتر از اش نشو

یا اینکه :
کد:
#include <iostream>
#include <string>
#include <sstream>
#include <conio.h>

using namespace std;

int main ()
{
  string mystr;
  float price=0;
  int quantity=0;

  cout << "Enter price: ";
  getline (cin,mystr);
  stringstream(mystr) >> price;
  cout << "Enter quantity: ";
  getline (cin,mystr);
  stringstream(mystr) >> quantity;
  cout << "Total price: " << price*quantity << endl;
  getch();
  return 0;

}

برای اینکه متوجه بشی این استرینگ استریم چیکار میکنه اینو به کار ببر یه دقیقه :
کد:
stringstream(mystr) >> price; cout<<endl<<mystr<<" "<<price;
بعد وقتی ورودی میدی بهش اینو بده :

12d

خروجی که مشاهده میکنی اینه :

12d 12

یعنی 12d رو که رشته هست میریزه توی mystr بعد قسمت int از mystr رو میریزه توی price

اوکی ؟
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست




ویرایش توسط دانه کولانه : 01-28-2012 در ساعت 01:53 AM
پاسخ با نقل قول
کاربران زیر از دانه کولانه به خاطر پست مفیدش تشکر کرده اند :
جای تبلیغات شما اینجا خالیست با ما تماس بگیرید