C++:sscanf和sprintf的定义和使用

本文介绍了C++中的sscanf和sprintf函数,包括它们的定义、参数和返回值。sprintf用于将格式化的数据写入字符串,而sscanf则从字符串中读取格式化的数据。尽管sscanf功能强大,但在处理包含空格的字符串时可能会遇到挑战。

int sprintf ( char * str, const char * format, ... );

str - Pointer to a buffer where the resulting C-string is stored (should be large enough)
format - same as format in printf
... - additional arguments

return: strlen(str) - the total number of characters written

char buffer [50];
int id = 1234567;
int n = sprintf (buffer, "My ID is %d", id);

// buffer: My ID is 1234567
// n: 16

参考资料:http://www.cplusplus.com/reference/cstdio/sprintf/ 

int sscanf ( const char * s, const char * format, ...);

s - C string that the function processes as its source to retrieve the data.
format - same as format in scanf
... - additional arguments

return: the number of items in the argument list successfully filled.

char buffer [] = "Tom 18,7817";
char name[20];
int age, id;
sscanf(buffer, "%s %d,%d",name,&age,&id);
// s: Tom  age: 18  id: 7817

PS. sscanf虽然很强大,但是难以处理带空格的(或者空格不在开头结尾的)字符串。

请参考:C++字符串格式化输入——如何读入Tom Hanks,18,7817

参考资料:http://www.cplusplus.com/reference/cstdio/sscanf/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶晨毅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值