sscanf()函数问题

黄蒲 2012-02-06 07:11:47
文本文件有一行字符:ABCD 123 3.88
想用sscanf()函数读取3.88.

代码部分:
int a,b,b;
sscanf("ABCD 123 3.88","%d.%d%d",&a,&b,&c);
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);

本人想获取这行字符中的3.88部分,不知道上面代码可以获得:a=3, b=8, c=8 不能?答案是不能,打印结果我很诧异

打印结果:
0
133512
-4197696

请问问题在哪里?如果想获得3.88这部分,有什么好的办法没有?
谢谢了。。。
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄蒲 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ivers0n 的回复:]

http://blog.csdn.net/kenby/article/details/4051018

建议学习下sscanf
[/Quote]
挺好的,问题解决了
IVERS0N 2012-02-06
  • 打赏
  • 举报
回复
fredshao 2012-02-06
  • 打赏
  • 举报
回复
oh,上面忘记关闭文件了。。。
fredshao 2012-02-06
  • 打赏
  • 举报
回复
#include<stdio.h>

int main(void)
{
FILE *p;

p=fopen("d:\\test.txt","r");
char a=0;
char b=0;
char c=0;
fscanf(p,"%c.%c%c",&a,&b,&c);
printf("%c\n%c\n%c\n",a,b,c);
return 0;
}

如果用字符型,可以成功读取3 1 8 ,如果用 int 型,我只能读取3 然后18为一个数了,。。。

70,036

社区成员

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

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