私は昨日からC ++を学ぼうとしていますが、このドキュメントを使用しています:http : //www.cplusplus.com/files/tutorial.pdf(32ページ)。ドキュメントにコードを見つけて実行しました。価格にRs 5.5、数量に整数を入力してみましたが、出力は0でした。5.5と6を入力してみましたが、出力は正しいものでした。
// 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;
}
質問:mystringコマンドは正確には何をしますか?文書からの引用:
「この例では、標準入力から間接的に数値を取得します。標準入力から直接数値を抽出する代わりに、標準入力(cin)から文字列オブジェクト(mystr)にラインを取得し、整数を抽出しますこの文字列の値をint(量)型の変数に変換します。 "
私の印象では、関数は文字列の不可欠な部分を取り、それを入力として使用します。
(私はここで質問する方法を正確に知りません。私はプログラミングも初めてです)ありがとうございます。
stringstream
機能するかを示すために例を考え出す必要がありました。それはおそらく奇妙なものでもあります=)しかし、それはあなたが文字列をストリームとして扱うことができることを示しています。
stringstream
は明らかに間違った例です。そして、それがそうであったとしても、それは別様に書かれるべきです。
stringstream
そのように使用されるのを見たことがありません。私は通常、ラインをロードし、それを変換しているのでしかし、これは明らかに、ここで少し利点があり、部品によって抽出cin
された入力ストリームがすでに...だからがcin >> price >> quantity;
はるかに簡単であることでしょう。それがcplusplus.comチュートリアルを使用しない正当な理由です。