C++ stringstream 简化数据类型转换
C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性。
在C++中经常会使用到snprintf来格式化一些输出。为了正确地完成这个任务,必须确保证目标缓冲区有足够大空间以容纳转换完的字符串。此外,还必须使用正确的格式化符。如果使用了不正确的格式化符,会导致非预知的后果。
1. snprintf需要注意buff的大小,以及对返回值的判断。
1 #include <stdio.h> 2 3 int main(){ 4 char *gcc= "gcc"; 5 int no = 1; 6 7 ///调节char数组的大小可以看到不同的输出。 8 ///因此一定要注意buff的大小, 以及snprintf的返回值 9 char buff[10]; 10 int ret = 0; 11 ret = snprintf(buff, sizeof(buff), "%s is No %d", gcc, no); 12 if (ret >= 0 && ret < sizeof(buff)){ 13 printf("%s\n", buff); 14 } 15 else{ 16 printf("err ret:%d\n", ret); 17 } 18 return 0; 19 }
2. 使用stringstream
<sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。
使用stringstream比snprintf更加省心。
std::stringstream比std::string使用更加灵活,支持各种格式。
1 #include <stdio.h> 2 #include <sstream> 3 4 int main(){ 5 char *gcc= "gcc"; 6 int no = 1; 7 8 std::stringstream stream; 9 stream << gcc; 10 stream << " is No "; 11 stream << no; 12 printf("%s\n", stream.str().c_str()); 13 14 stream.str(""); ///重复使用前必须先重置一下 15 stream << "blog"; 16 stream << ' '; 17 stream << "is nice"; 18 printf("%s\n", stream.str().c_str()); 19 return 0; 20 }
输出:
cplusplus关于snprintf有详细的说明: http://www.cplusplus.com/reference/cstdio/snprintf/?kw=snprintf
C++ stringstream 简化数据类型转换相关推荐
- C++-std:stringstream【数据类型转换、多个字符串拼接、分割字符串】
首先,需要包含头文件<sstream>: #include <sstream> <sstream> 定义了三个类:istringstream.ostringstre ...
- java 数据类型转换的一场_Java基础 — 四类八种基本数据类型
整型:整数类型int 一般的数据. long 极大的数据. short 用于特定的场合,比如底层的文件处理或者需要控制占用存储单元空间量的大数组. byte 用于特定的场合,比如底层的文件处理或者需要 ...
- matlab强制数据类型转换
>> x=uint8(8); >> class(x) %查看类型 ans = uint8 >> y=double(x); %转双精度 >> class( ...
- Qt常用数据类型转换
Qt常用数据类型转换 1. char *与const char *的转换 char *ch1="hello11"; const char *ch2="hello22&qu ...
- C语言中强制数据类型转换
字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128-127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围是0-255(有些机器把char ...
- 数据类型转换pytorch
du = torch.ones([2,2]) a = np.array([[1,2],[3,4]],dtype=np.float32) b = torch.from_numpy(a)#数据类型是不变的 ...
- tf.cast()数据类型转换
tf.cast()函数的作用是执行 tensorflow 中张量数据类型转换,比如读入的图片如果是int8类型的,一般在要在训练前把图像的数据格式转换为float32. cast定义: cast(x, ...
- Java中如何实现Date与String之间的数据类型转换
String 数据类型转换成 Date String inputDate = "2021-04-11";Date outputDate = null;SimpleDateForma ...
- Java 数据类型转换
学而时习之,温故而知新. 数据类型转换,先放一张图,了解数据类型 简单数据类型之间的转换又可以分为: 1 低级到高级的自动类型转换 2 级到低级的强制类型转换 3 包装类过渡类型转换. (有时候我们有 ...
最新文章
- 重磅 | 谷歌Waymo最新发布可完全脱离人类操控的自动驾驶汽车
- 干货+福利!MySQL常见的面试题+索引原理分析!
- live555 源码分析:子会话 SDP 行生成
- 为什么销售员贷款比较难?
- java udp ip端口 设置_UDP端口扫描Java只找到1个开放的UDP端口
- 判定是否过拟合、欠拟合的一种方式
- char强制类型转换为int_为强制类型转换正名
- vmware不能resume问题,Collect Support Data,vmware.log
- 机器学习笔记(五)回归模型
- 数据挖掘导论完整版pdf中文
- windows7下将mysql加入环境变量
- cdh 6哈希验证失败解决方法
- 企业管理决策之金字塔思维
- Axure RP 9基础教程(四)-文件及文件设置
- excel中文显示乱码
- 2022 计算机视觉顶会论文----目标检测
- python初体验-hello world答案_第三节 Hello world --python初体验
- linux下退出mysql
- bedtools指南
- 创新的功劳不属于某一个人---读《创新者》有感
热门文章
- Linux下安装java(Ubuntu为例)
- 实现gps与服务器通信协议,一种自适应GPS通信协议分析算法的设计与实现
- Linux控制台打开显示字符画,Linux 命令行字符画工具
- gdc服务器老显示drs,VMware ESXi 高可用之drs
- c语言 linux取运行目录,c语言获取当前工作路径的实现代码(windows/linux)
- Python爬虫9大入门学习知识点
- jsp中如何显示mysql数据库数据类型_jsp中如何以表格形式显示数据库中一个字段的数据?...
- 序列每天从1开始_时间序列预测一
- python opencv创建图像_使用Python中OpenCV库创建一幅图片的RGB通道图片
- 模型与logit_互助问答第33期:条件logit模型相关问题