C++ 標準ライブラリ <sstream>
C++ プログラミングでは、文字列と数値の間の変換処理は一般的なタスクです。
sstreamこれは C++ 標準ライブラリのコンポーネントであり、文字列をストリームのように処理できる文字列ストリームを扱う便利な方法を提供します。
<sstream>文字列を入出力ストリームとして使用することを可能にし、これにより文字列からデータを読み取ったり、文字列にデータを書き込んだりすることが非常に簡単になります。
定義
sstreamこれは C++ 標準ライブラリの名前空間の1つで、文字列ストリームを処理するためのいくつかのクラスが含まれています。これらのクラスには次のものがあります:
istringstream:文字列からデータを読み取るために使用します。ostringstream:文字列にデータを書き込むために使用します。stringstream:はistringstreamとostringstreamの組み合わせで、読み取りと書き込みの操作を同時に行うことができます。
構文
使用sstreamの基本構文は次のとおりです:
#include <sstream>
// 使用istringstream
std::istringstream iss("some data");
// 使用ostringstream
std::ostringstream oss;
// 使用stringstream
std::stringstream ss;
例
文字列からデータを読み取る
以下は、使用してistringstream文字列から整数と浮動小数点数を読み取る例です:
例
#include <iostream>
#include <sstream>
int main() {
std::string data = "10 20.5";
std::istringstream iss(data);
int i;
double d;
iss >> i >> d;
std::cout << "Integer: " << i << std::endl;
std::cout << "Double: " << d << std::endl;
return 0;
}
#include <sstream>
int main() {
std::string data = "10 20.5";
std::istringstream iss(data);
int i;
double d;
iss >> i >> d;
std::cout << "Integer: " << i << std::endl;
std::cout << "Double: " << d << std::endl;
return 0;
}
出力結果:
Integer: 10 Double: 20.5
文字列にデータを書き込む
以下は、使用してostringstream文字列にデータを書き込む例です:
例
#include <iostream>
#include <sstream>
int main() {
std::ostringstream oss;
int i = 100;
double d = 200.5;
oss << i << " " << d;
std::string result = oss.str();
std::cout << "Resulting string: " << result << std::endl;
return 0;
}
#include <sstream>
int main() {
std::ostringstream oss;
int i = 100;
double d = 200.5;
oss << i << " " << d;
std::string result = oss.str();
std::cout << "Resulting string: " << result << std::endl;
return 0;
}
出力結果:
Resulting string: 100 200.5
stringstream を使用した読み書き操作
以下は、使用してstringstream読み取りと書き込みの操作を同時に行う例です:
例
#include <iostream>
#include <sstream>
int main() {
std::string data = "30 40.5";
std::stringstream ss(data);
int i;
double d;
// stringstreamからデータを読み取る
ss >> i >> d;
std::cout << "Read Integer: " << i << ", Double: " << d << std::endl;
// stringstreamにデータを書き込む
ss.str(""); // stringstreamをクリアする
ss << "New data: " << 50 << " " << 60.7;
std::string newData = ss.str();
std::cout << "New data string: " << newData << std::endl;
return 0;
}
#include <sstream>
int main() {
std::string data = "30 40.5";
std::stringstream ss(data);
int i;
double d;
// stringstreamからデータを読み取る
ss >> i >> d;
std::cout << "Read Integer: " << i << ", Double: " << d << std::endl;
// stringstreamにデータを書き込む
ss.str(""); // stringstreamをクリアする
ss << "New data: " << 50 << " " << 60.7;
std::string newData = ss.str();
std::cout << "New data string: " << newData << std::endl;
return 0;
}
出力結果:
Read Integer: 30, Double: 40.5 New data string: New data: 50 60.7
まとめ
sstreamこれは C++ 標準ライブラリの中でも非常に便利なコンポーネントであり、文字列と基本データ型の間の変換を簡素化します。上記の例を通じて、どのように使用するかを確認できます。istringstream、ostringstreamとstringstreamこれらの変換を実現するために。