【C/C++】sprintf与sscanf函数的使用

零.导言

        sprintf 与 sscanf 函数是C语言中的标准库函数,定义在 <stdio.h> 头文件中。接下来我将分别介绍这两个函数并讲解他们和 printf 和 scanf 函数的区别和相似之处。


一.sprintf

        其主要功能是将格式化的数据写入字符串。换句话说,它可以将各种不同类型的数据(如整数、浮点数、字符等)按照一定的格式组合成一个字符串。如下方代码:

int num = 100;
float score = 3.14;
char name[20] = "miku";
char str[100] = {0};

sprintf(str,"%d,%f,%s",num,score,name);
printf(str);

        此处,sprintf 函数就将以上三个变量(num,score,name)按照一定的格式转化为字符串,并且将它们储存到str数组中去了。在打印的测试中,转化为字符串的三个变量也能正常打印。


二.sscanf

         其主要功能是从一个字符串中按照指定的格式提取数据,并将其存储到对应的变量中。

int num = 100;
float score = 3.14;
char name[20] = "miku";
char str[100] = {0};

sprintf(str,"%d,%f,%s",num,score,name);
printf(str);

int num1 = 0;
float score1 = 0;
char name1[20] = "0";

sscanf(str,"%d,%f,%s",&num1,&score1,&name1);
printf("\n%d,%f,%s", num1, score1, name1);

        如上图,现有三个新建变量nume1,score2,name1,使用 sscanf 函数即可以将 str 数组中的三个变量(num,score,name)的数值给输出到现有变量中,下图为打印的结果。

                


三.注意事项 

  • 对于 sprintf,格式字符串中的转换说明符必须与提供的变量类型和顺序相匹配。
  • 对于 sscanf,格式字符串中的转换说明符必须与期望从字符串中读取的数据类型和顺序相匹配。

如果在使用这两个函数时没有正确匹配格式字符串和变量,可能会导致变量的数值发生未知的改变或无法正确解析数据。


四.相关链接

        【C/C++】scanf函数与printf函数_c++中scanf和printf-优快云博客


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值