C、C++中的sprintf和stringstream的使用

cpp 复制代码
///头文件:
#include<sstream>
#include<cstdio>
#include<string>

1、stringstream

cpp 复制代码
std::stringstream ss;
std::string Name="li";
ss<<"Name="<<Name;

std::string str=ss.str();
std::cout<<str<<std::endl;

// 或者使用 std::to_string
std::string str = "数字: " + std::to_string(num);

2、sprintf

cpp 复制代码
        
int num = 20;
char buffer[100];
sprintf(buffer, "Num=%d", num);
std::cout << buffer << std::endl;

char Na[] = "ZHANG";
sprintf(buffer, "NAME:%s,AGE:%d", Na, num);
std::cout << buffer << std::endl;

double price = 100.99;
sprintf(buffer, "Price=%.2f", price);
std::cout << buffer << std::endl;

int value = 255;
sprintf(buffer, "shi:%d,shiliu:0x%X,ba:0%o", value, value, value);
std::cout << buffer << std::endl;

char buffer[50];
char* name = "Tom";
char* country = "China";
sprintf(buffer, "%s lives in %s", name, country); // 连接字符串
printf("Connected string: %s\n", buffer); // 输出:"Tom lives in China"

为防止缓冲区越界,可以采用snprintf函数

cpp 复制代码
snprintf(buffer, sizeof(buffer), "Num:%d,Str:%s", 123, "zxc");
std::cout << buffer << std::endl;
cpp 复制代码
char buffer[10];
int len = snprintf(buffer, sizeof(buffer), "Hello, World!");
printf("String: %s\n", buffer); // 输出:"Hello, W"(被截断)
printf("Intended length: %d\n", len); // 输出:13(实际需要的长度)
相关推荐
野犬寒鸦1 小时前
从零起步学习并发编程 || 第四章:synchronized底层源码级讲解及项目实战应用案例
java·服务器·开发语言·jvm·后端·学习·面试
!停1 小时前
数据结构二叉树——堆
java·数据结构·算法
virus59459 小时前
悟空CRM mybatis-3.5.3-mapper.dtd错误解决方案
java·开发语言·mybatis
一匹电信狗9 小时前
【LeetCode_547_990】并查集的应用——省份数量 + 等式方程的可满足性
c++·算法·leetcode·职场和发展·stl
Queenie_Charlie10 小时前
小陶的疑惑2
数据结构·c++·树状数组
没差c10 小时前
springboot集成flyway
java·spring boot·后端
时艰.10 小时前
Java 并发编程之 CAS 与 Atomic 原子操作类
java·开发语言
梵刹古音11 小时前
【C语言】 函数基础与定义
c语言·开发语言·算法
编程彩机11 小时前
互联网大厂Java面试:从Java SE到大数据场景的技术深度解析
java·大数据·spring boot·面试·spark·java se·互联网大厂
笨蛋不要掉眼泪11 小时前
Spring Boot集成LangChain4j:与大模型对话的极速入门
java·人工智能·后端·spring·langchain