在线急问,sscanf函数

jenhi 2007-12-24 01:46:28
#define DATA_FORMAT "%[^,],%[^,],%[^,],%[^,],%[^,],"\
"%[^,],%[^,],%[^,],%[^,],%[^\n]"

字符串dataLine="2,remote_only,local,,,,remote,03,ADFADFFGLERT,PQERUT"

scanfRt = sscanf(dataLine,DATA_FORMAT,
tmpbuf[0], tmpbuf[1], tmpbuf[2], tmpbuf[3],
tmpbuf[4], tmpbuf[5], tmpbuf[6], tmpbuf[7],
tmpbuf[8], tmpbuf[9]);

执行后,tmpbuf[3]以及之后的,都为\0,这是怎么回事?
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jenhi 2007-12-24
  • 打赏
  • 举报
回复
问题我已经自己解决了,多谢各位! 结论这种情况以后最好不要用sscanf函数了
prime1213 2007-12-24
  • 打赏
  • 举报
回复
up
jenhi 2007-12-24
  • 打赏
  • 举报
回复
现在很急啊,你看出什么来了?
yutaooo 2007-12-24
  • 打赏
  • 举报
回复

喔!看出来啦,先有情顶一下吧。
jenhi 2007-12-24
  • 打赏
  • 举报
回复
回yutaooo:

tmpbuf应该没有错

char tmpbuf[10][20] = {0};

另外补充一下,我是在循环里面使用sscanf,
就是第一次读到dataLine="local_only,local,DFETHSGER,TANZHDDGTRQUP,remote,,"
分隔一次。然后memset所有的tmpbuf
然后第二次循环dataLine="2,remote_only,local,,,,remote,03,ADFADFFGLERT,PQERUT"
就出现上面说的问题了
yutaooo 2007-12-24
  • 打赏
  • 举报
回复

tmpbuf 啥类型的?难道不应该是 &tmpbuf[0] 吗?
jenhi 2007-12-24
  • 打赏
  • 举报
回复
但是
dataLine="local_only,local,DFETHSGER,TANZHDDGTRQUP,remote,,"
时候,分割正确了
bargio_susie 2007-12-24
  • 打赏
  • 举报
回复
无法分割连续分割符的情况。。

可以考虑下strtok

70,035

社区成员

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

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