sscanf这个函数谁熟,我看不懂msdn上的sscanf例子 ,请指教。

whlxy 2001-09-13 07:47:08
msdn上的例子:
/* SSCANF.C: This program uses sscanf to read data items
* from a string named tokenstring, then displays them.
*/

#include <stdio.h>

void main( void )
{
char tokenstring[] = "15 12 14...";
char s[81];
char c;
int i;
float fp;

/* Input various data from tokenstring: */
sscanf( tokenstring, "%s", s );
sscanf( tokenstring, "%c", &c );
sscanf( tokenstring, "%d", &i );
sscanf( tokenstring, "%f", &fp );

/* Output the data read */
printf( "String = %s\n", s );
printf( "Character = %c\n", c );
printf( "Integer: = %d\n", i );
printf( "Real: = %f\n", fp );
}


Output

String = 15
Character = 1
Integer: = 15
Real: = 15.000000
我的理解是如果char tokenstring[] = "151 214...";
那么输出是151
1
151
151。000000吧
这个函数有什么用呢?
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cherryx 2001-09-16
  • 打赏
  • 举报
回复
ssacnf(a,format);
其中a是你已经有的string,format是a这个string的格式.
比如.
你用fgets得到 "12 apple" 这个string, 并把它放入a里面,
然后你用
sscanf(a,"%d %s",&num,fruit)来存储这两条数据.
因为scanf忽略blanks,tabs,white space,所以当你要输入的string的format不定时就
最好用sscanf.
=^^=
kiss_kick_kill 2001-09-14
  • 打赏
  • 举报
回复
学习
krerix 2001-09-14
  • 打赏
  • 举报
回复
学习
shipatrioc 2001-09-13
  • 打赏
  • 举报
回复
sscanf函数是输入重定向,即它输入数据的来源是一个串,而不是终端,在这里就是tokenstring,sscanf 同scanf有几分相似,相同之处在于他们接收串时,不接收空
格,回车,换行等字符,你可以试一下 scanf("%s",str);
printf("%s",str),如果你输入15 12 14 ,结果就是15,sscanf主要用解析串,而
sprintf用与格式化串(感觉有点象 MFC 里的format("%d ...",i)函数),用着感觉
挺好

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧