首先普通的printf和scanf用法是这样的
scanf("%d",&n);
printf("%d",n);
但其实默认是这样的
scanf(screen,"%d",&n);//都是面向screen
printf(screen,"%d",n);
//scanf的顺序是从做左到右
//printf的顺序是从右到左
所以sscanf和sprintf就是面向str
sscanf(str,"%d",&n); //str[100]是字符数组 即把字符串的内容按照“%d”的格式输入到n
//如果str不符合%d的格式,比如aaa那么n=0,或者是str=12aa34,那么n=12
sprintf(str,"%d",n); //把n的内容以“%d”的格式输出到str当中。
sscanf和spring的顺序和也是分别从左到右,和从右到左。
注意:sscanf和sspirntf不支持string类,只能用char
简单例子
简单用于字符串和数字之间的相互转换
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
//char-->数字
char s[10];
sprintf(s,"%d",123); //把123打印到s中
printf("%s\n",s);
//数字-->char
int a;
sscanf("345","%d",&a);//把345输入到a中
printf("%d\n",a);
return 0;
}
一个简单的课后习题大家可以试试看
https://pintia.cn/problem-sets/994805260223102976/problems/994805272659214336