Saya mencoba mempelajari C ++ sejak kemarin dan saya menggunakan dokumen ini: http://www.cplusplus.com/files/tutorial.pdf (halaman 32). Saya menemukan kode di dokumen dan saya menjalankannya. Saya mencoba memasukkan Rs 5,5 untuk harga dan bilangan bulat untuk kuantitas dan hasilnya adalah 0. Saya mencoba memasukkan 5,5 dan 6 dan hasilnya benar.
// 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;
}
Pertanyaan: Apa sebenarnya yang dilakukan perintah mystring? Mengutip dari dokumen:
"Dalam contoh ini, kami memperoleh nilai numerik dari input standar secara tidak langsung. Alih-alih mengekstraksi nilai numerik langsung dari input standar, kami mendapatkan baris dari input standar (cin) ke dalam objek string (mystr), lalu kami mengekstrak integer nilai dari string ini menjadi variabel berjenis int (kuantitas). "
Kesan saya adalah bahwa fungsinya akan mengambil bagian integral dari string dan menggunakannya sebagai input.
(Saya tidak tahu persis bagaimana mengajukan pertanyaan di sini. Saya juga baru dalam pemrograman) Terima kasih.
stringstream
kerjanya. Ini aneh bahkan mungkin buruk =) Tapi ini menunjukkan Anda dapat memperlakukan string sebagai aliran.
stringstream
maka itu pasti contoh yang salah. Dan bahkan jika itu maka harus ditulis berbeda.
stringstream
digunakan seperti itu. Saya biasanya memuat baris, mengubahnya dan kemudian mengekstraknya berdasarkan bagian, namun ini jelas memiliki sedikit keuntungan di sini karenacin
sudah menjadi aliran input ... Jadicin >> price >> quantity;
akan jauh lebih sederhana. Itu akan menjadi alasan yang bagus untuk TIDAK menggunakan tutorial cplusplus.com.