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(实际需要的长度)
相关推荐
rannn_1114 小时前
【力扣hot100】链表专题|160、206、234、141、142
java·算法·leetcode·链表·面试·开发
不会代码的小猴4 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
青瓦梦滋5 小时前
传输层UDP/TCP协议
linux·网络·c++·网络协议·tcp/ip·udp
IKUN家族5 小时前
Spring IoC&DI
java·spring·rpc
捷瑞电子工坊5 小时前
嵌入式秋招面经:5大核心模块高频考题与实战避坑总结
c语言·stm32·嵌入式工程师·rtos·通信协议·嵌入式面试
一只旭宝5 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
山荷枝6 小时前
03-框架--Spring
java·后端·spring
天空'之城7 小时前
C 语言工业级通用组件手写 30:安全内存拷贝组件
c语言·内存拷贝·工业级组件·安全内存操作
ChaHae-In7 小时前
SpringBoot统一功能处理
java·spring boot·后端
coder!mq7 小时前
说几个常见的语法糖?
java·开发语言·算法