[swu]fscanf函数

偷不得懒 2014-03-30 11:12:33
1 #include <stdio.h>
2
3 int main()
4 {
5 FILE *p;
6 int n, ret;
7 p = fopen("data.in", "r");
8 ret = fscanf(p, "%d", n);
9 printf("%d\n", ret);
10 }
我在data.in的文件中输入的数据是u ,运行的结果是0 请问我该如何买书这种错误情况?
...全文
132 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cym_hellfire 2014-03-31
  • 打赏
  • 举报
回复
ret 是 fscanf 的返回值,即能够从文件中 成功读取的 整形 数据的个数,u是字符型数据,所以无法读取,能读取的数据个数为0,所以返回0赋予ret ,故你输出的结果是0
赵4老师 2014-03-31
  • 打赏
  • 举报
回复
赵4老师 2014-03-31
  • 打赏
  • 举报
回复
请判断fscanf的返回值!
lm_whales 2014-03-31
  • 打赏
  • 举报
回复
fscanf(p, "%d", &n);
哦,有错误,
fscanf,scanf 的格式化串以后的参数(...),即省略号部分,
除了 *星号格式对应的参数,是个整型数据外,其他参数。。全部形参都是指针,实参应该是地址,指针。
lm_whales 2014-03-31
  • 打赏
  • 举报
回复
fscanf(p, "%d", &n);
fscanf,scanf 的格式化串以后的参数(...),即省略号部分,全部形参都是指针,实参应该是地址,指针。
重庆-老白 2014-03-31
  • 打赏
  • 举报
回复
文件管理这章都忘记完了。。
evilshot 2014-03-31
  • 打赏
  • 举报
回复
你从文本中读取%d,只会读取文本中的数字,而不会读取字符的
shiguojie19892 2014-03-31
  • 打赏
  • 举报
回复
还有就是你输入的是一个u字符,但是要读取一个int值,所以没有读取到,所以返回0,如果你想读取u的ASC2码,要改是使用%c来读取,然后打印的时候使用%d。
shiguojie19892 2014-03-31
  • 打赏
  • 举报
回复
引用 楼主 u012789847 的回复:
1 #include <stdio.h> 2 3 int main() 4 { 5 FILE *p; 6 int n, ret; 7 p = fopen("data.in", "r"); 8 ret = fscanf(p, "%d", n); 9 printf("%d\n", ret); 10 } 我在data.in的文件中输入的数据是u ,运行的结果是0 请问我该如何买书这种错误情况?
使用fscanf时一定谨记取地址符&要加上
 ret     = fscanf(p, "%d", &n);
buyong 2014-03-30
  • 打赏
  • 举报
回复
和scanf一样,如果你%d期待一个整数,你输入一个u,也会是0. 把%d改成%c

69,373

社区成员

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

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