Hugo Gao 2016-03-12 11:13 采纳率: 45.7%
浏览 1433

关于sscanf的疑问,求解!

 #include<stdio.h>
#include<stdlib.h>
int main()
{
    char buf[256];
    int size;
    int *variable_array;
    int i;

    printf("Please Input Array size:");
    fgets(buf,256,stdin);
    sscanf(buf,"%d",&size);

    variable_array=malloc(sizeof(int)*size);

    for(i=0;i<size;i++)
        variable_array[i]=i;
    for(i=0;i<size;i++)
        printf("variable_array[%d]........%d\n",i,variable_array[i]);

    return 0;
}

中间的fgets和sscanf怎么用的啊?明明buf是字符串,却要输入数字,输入数字就算了,好歹也是字符型吧,sscanf将char以%d输入给size应该是char的asscii码吧,为什么还真的就得到了这个数字?

  • 写回答

2条回答

  • cxsmarkchan 2016-03-12 12:12
    关注

    这是字符串的格式化输入,sscanf和scanf差不多,只不过后者是从屏幕输入,而前者是从字符串输入。至于为什么它能把一串用ascii码表示的字符串转换成数字,那是sscanf内部完成的,有兴趣的话可以看源码。初学只要记住和用scanf一样使用sscanf就可以了,只不过获取信息的对象从屏幕变成了字符串。

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图的问题
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名