Dünden beri C ++ öğrenmeye çalışıyorum ve şu belgeyi kullanıyorum: http://www.cplusplus.com/files/tutorial.pdf (sayfa 32). Belgede bir kod buldum ve çalıştırdım. Fiyat için Rs 5.5 ve miktar için bir tam sayı girmeyi denedim ve çıktı 0 idi. 5.5 ve 6'yı girmeyi denedim ve çıktı doğruydu.
// stringstreams
#include <iostream>
#include <string>
#include <sstream>
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;
return 0;
}
Soru: mystring komutu tam olarak ne yapıyor? Belgeden alıntı yapmak:
"Bu örnekte, dolaylı olarak standart girdiden sayısal değerler alıyoruz. Sayısal değerleri doğrudan standart girdiden çıkarmak yerine, standart girdiden (cin) bir dizi nesnesine (mystr) satırlar alıyoruz ve sonra tamsayıyı çıkarıyoruz bu dizeden değerler int (miktar) türünde bir değişkene. "
Benim izlenimim, işlevin bir dizenin ayrılmaz parçasını alacağı ve bunu girdi olarak kullanacağıydı.
(Burada nasıl soru soracağımı tam olarak bilmiyorum. Programlamada da yeniyim) Teşekkürler.
stringstream
çalıştığını göstermek için bir örnek bulmaları gerekiyordu . Tuhaf bir durum, muhtemelen kötü de olsa =) Ama dizgeyi bir akım olarak ele alabileceğinizi gösterir.
stringstream
kesinlikle yanlış bir örnektir. Ve öyle olsa bile farklı yazılmalıdır.
stringstream
bu şekilde kullanıldığını hiç görmedim . Genellikle, çizgi yüklemek dönüştürmek ve sonra çünkü ancak bu Açıkçası burada biraz avantaja sahip bölümleri tarafından ayıklamakcin
olan bir giriş akışı zaten ... Yanicin >> price >> quantity;
çok basit tarafından olurdu. Bu, cplusplus.com eğitimlerini KULLANMAMANIZ için iyi bir neden olacaktır .