[解決済み] ストリングストリームって何するもの?
質問
昨日からC++を勉強しようとしていて、このドキュメントを利用しています。 http://www.cplusplus.com/files/tutorial.pdf (32ページ). このドキュメントの中にあるコードを見つけ、実行しました。値段に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
の使い方と似ています。
iostream
の使い方に似ているので、覚える負担はありません。
Stringstreamsは、文字列の読み込みと文字列へのデータの書き込みの両方に使用することができます。主に文字列バッファで機能しますが、実際のI/Oチャンネルはありません。
stringstreamクラスの基本的なメンバー関数は以下の通りです。
-
str()
であり、バッファの内容を文字列で返します。 -
str(string)
で、バッファの内容を引数の文字列に設定します。
文字列ストリームの使用例です。
ostringstream os;
os << "dec: " << 15 << " hex: " << std::hex << 15 << endl;
cout << os.str() << endl;
結果は
dec: 15 hex: f
.
istringstream
は多かれ少なかれ同じような使い方をします。
要約すると、stringstreamは以下のような便利な方法です。 文字列を独立したI/Oデバイスのように操作する .
参考までに、クラス間の継承関係は。
関連
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】Enterキーを押して続行する
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] ルール・オブ・スリーとは?
-
[解決済み] コピーアンドスワップ慣用句とは?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] ムーブセマンティクスとは何ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。