轻松搞懂sscanf和sprintf

目录

我们先回顾一下 scanf 和 printf
如果想要从屏幕输入int型变量n,并将int型变量n输出到屏幕。
写法是这样的:

scanf("%d",&n);
printf("%d",n):

事实上,上面的写法其实可以表示成下面的样子,其中screen表示屏幕:

sscanf(screen,"%d",&n);
sprintf(screen,"%d",n);

可以发现,scanf的输入其实是把screen的内容以"%d"的格式传输到n中(即从左至右),
而printf的输出则是把n以“%d"的格式传输到screen上(即从右至左)。

sscanf与sprintf与上面的格式是相同的,只不过把screen换成了字符数组
(假设定义了一个char数组str[100]),如下所示:

sscanf(str,"%d",&n);
sprintf(str,"%d",n);

上面sscanf写法的作用是把字符数组str中的内容以" %d “的格式写到n中(还是从左到右)
例如:
在这里插入图片描述
而sprintf写法的作用是把n以”%d"的格式写到str字符数组中(还是从右至左)
例子:
在这里插入图片描述
使用sscanf将字符数组str中的内容按"%d:%lf,%s"的格式写到int型变量n、double型变量db、char型数组str2中。
在这里插入图片描述
使用sprintf将int型变量n、double型变量db、char型数组str2按"%d:%2.f,%s"的格式写到字符数组str中
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46527915/article/details/114546198