scanf和printf相当于以特定格式从屏幕输入输出;
而sscanf和sprintf则是将屏幕换成了字符数组。
以PAT B1054 求平均值为例说明:
本题意思很简单,但在判断输入数据是否合法中是否最多精确到小数点后2位的判断直接写循环遍历输入的数据并不方便,此时如果会使用sscanf和sprintf的话就会简单很多。
如下所示:
先定义字符数组a记录输入的数据,再通过函数sscanf将其以double类型写入变量tmp中,再通过函数sprintf将tmp中数据以保留2位小数的形式写入字符数组b中,最后只需要判断a和b数组是否相等即可。
// the use of "sscanf" and "sprintf"
sscanf(a,"%lf",&tmp);
sprintf(b,"%.2f",tmp);