在C++中,std::stringstream
类提供了一系列方法来执行类型转换。以下是一些常用的类型转换方法:
- 整数与字符串之间的转换:
- 使用
str()
方法将整数转换为字符串。 - 使用
operator<<
将整数插入到stringstream
对象中,然后使用str()
获取字符串。 - 使用
ss >>
从stringstream
对象中提取整数。
示例:
#include#include #include int main() { int num = 42; std::stringstream ss; // 将整数转换为字符串 ss << num; std::string str = ss.str(); std::cout << "String: " << str << std::endl; // 从字符串中解析整数 ss.clear(); // 清除错误标志 ss << "123"; int parsedNum; ss >> parsedNum; std::cout << "Parsed int: " << parsedNum << std::endl; return 0; }
- 浮点数与字符串之间的转换:
- 使用
str()
方法将浮点数转换为字符串。 - 使用
operator<<
将浮点数插入到stringstream
对象中,然后使用str()
获取字符串。 - 使用
ss >>
从stringstream
对象中提取浮点数。
示例:
#include#include #include int main() { float num = 3.14f; std::stringstream ss; // 将浮点数转换为字符串 ss << num; std::string str = ss.str(); std::cout << "String: " << str << std::endl; // 从字符串中解析浮点数 ss.clear(); // 清除错误标志 ss << "2.718"; float parsedNum; ss >> parsedNum; std::cout << "Parsed float: " << parsedNum << std::endl; return 0; }
- 字符串与其他类型之间的转换:
- 使用
operator>>
从stringstream
对象中提取特定类型的值。 - 使用
<<
操作符将特定类型的值插入到stringstream
对象中。
示例:
#include#include #include int main() { std::stringstream ss; std::string str; int num; float fnum; // 插入多个值并提取 ss << "Hello" << " " << 123 << " " << 3.14f; getline(ss, str, ' '); // 使用空格作为分隔符 ss >> num; ss >> fnum; std::cout << "String: " << str << std::endl; std::cout << "Int: " << num << std::endl; std::cout << "Float: " << fnum << std::endl; return 0; }
注意:在进行类型转换时,请确保stringstream
对象中的数据格式与要转换的类型匹配,否则可能会导致错误或不可预期的结果。如果需要,可以使用ss.clear()
和ss.ignore()
等方法来清除错误标志和忽略无效输入。