私は昨日から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チュートリアルを使用しない正当な理由です。