متوجه شدم چی میگی مساله اینتر زدن هست . اینتر رو هم میریزه توی استرینگ ! .
بنابراین یه راهش اینه که اون یه دونه اینتر رو دور بریزی مثل مثالی که خودت زدی والبته راه چیپی نیست ها خود 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
اوکی ؟