stringstream替换sprintf
来源:互联网 发布:python while sleep 编辑:程序博客网 时间:2024/05/23 18:37
一、为什么要替换?
答:C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更安全的操作。
int n = 9999;char sz[10];sprintf(sz, "abcdefghijklmn%f", n);
存在的问题:
1、没有检查缓冲区是否溢出,大小是否足够;
2、没有检查格式化符是否匹配;
修改后的代码:
int n = 9999;char sz[10];stringstream ssTmp;ssTmp << n;ssTmp >> sz;
二、实际应用
1、int 转 string
#include <string>#include <sstream>#include <stdlib.h>using namespace std;int main(int argc, char **argv){int n = 9999;string str;stringstream ss;ss << n;ss >> str;cout << str << endl;system("pause");return 0;}2、int 转 char*
#include "stdafx.h"#include <iostream>#include <string>#include <sstream>#include <stdlib.h>using namespace std;int main(int argc, char **argv){int n = 9999;char sz[16] = "";stringstream ss;ss << n;ss >> sz;cout << sz << endl;system("pause");return 0;}
3、同一个stringstream进行多次转换之前,必须进行clear操作
#include "stdafx.h"#include <iostream>#include <string>#include <sstream>#include <stdlib.h>using namespace std;int main(int argc, char **argv){int n1 = 9999;int n2 = 99;string strN1, strN2;stringstream ss;ss << n1;ss >> strN1;ss.clear();ss << n2;ss >> strN2;cout << strN1 << endl;cout << strN2 << endl;system("pause");return 0;}
0 0
- stringstream替换sprintf
- std::stringstream 取代 sprintf
- sscanf sprintf stringstream
- 字符流(stringstream|sscanf|sprintf)
- C++中stringstream实现C中sprintf与atoi功能
- c++拼接字符串效率比较(+=、append、stringstream、sprintf)
- c++拼接字符串效率比较(+=、append、stringstream、sprintf)
- c++拼接字符串效率比较(+=、append、stringstream、sprintf)
- c++拼接字符串效率比较(+=、append、stringstream、sprintf)
- stringstream
- stringstream
- stringstream
- stringstream
- stringstream
- stringstream
- stringstream
- stringstream
- stringstream
- java并发教程3
- java并发教程4
- (转)Win7系统下使用防火墙开放某些…
- (转)win7 防火墙开启ping
- (转)session和cookie的一些理解
- stringstream替换sprintf
- lua 与 c/c++ 交互(5) lua调用c/c++
- 快速冪
- nargin与varnargin
- 想成为嵌入式程序员应知道的16个基本问题
- Oracle进程
- Linux常用命令(五十三) - wget
- 邻接表和邻接矩阵手写简洁代码DFS BFS
- 学习cocos2dx3.x打包APK