2 qq 32681843 qq_32681843 于 2016.03.12 19:13 提问

关于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
cxsmarkchan   2016.03.12 20:12

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

wangtiewei
wangtiewei   2016.03.12 21:49

1: fGets 是从一个文件流中读取数据
2:stdin是标准输入 std即standard(标准),in即input(输入),合起来就是标准输入。 一般就是指键盘输入到缓冲区里的东西
3: sscanf是一个格式化输入的一个标准库函数。他是以默认是以空格来截取字符(先这么理解把)比方说你有一个字符串为 10空格20
那么就可以用sscanf(buf,"%d%d",&i,&j);来给i ,j 赋值

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
时间复杂度分析 递归关系
一.求解方法 置换法(Substitution )  Make a guess and verify it(假设-论证). The three steps of the substitution method: ( 置换法的三步骤 ) 1. Make a good guess( 猜想 ) 2. Verify the guess, assuming that it can be ver
经典的大数据问题
随着信息的高速发展,越来越多的数据信息等待处理,如何快速的从这些海量数据中找到你所需要的数据呢?这就是大数据的处理问题,下面我对几个经典的大数据问题进行分析~~~~ 一. 设计算法找到每日访问百度出现次数最多的IP地址?      分析:将所有的IP逐个写入到一个大文件中,因为当IP地址采用点分十进制的方式表示的时候是32位的,所以最多存在2^32个IP。可以采用映射的方式,比如模1000,将
Netty------对于Netty的十一个疑问
1.Netty 是什么?   Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。   2.使用 Netty 能够做什么? 开发异步、非阻塞的 TCP 网络应用程序; 开发异步、非阻塞的 UDP 网络应用程序; 开发异步文件传输应用程序; 开发异步 HTTP 服
Whatspay将有望充当未来数字货币交易“媒介”桥梁
货币发展大致遵循由自然货币向人工货币的演变,由杂乱形状向规范形状的演变,由地方铸币向中央铸币的演变,由金属货币向纸币交子的演变,由手工印币向机制印币的演变。这是一个由复杂向简单,由杂乱向规则,由繁冗向快捷,由沉重向轻便的发展过程。近几十年来,世界经济进一步呈现全球化趋势,各经济体之间的经济联系更加紧密,全球金融市场跨越了地域的限制,产品种类、交易频率、规模是以前所无法比拟的。纸币已经无法满足这样的...
模板方法模式详解(包含与类加载器不得不说的故事)
模板方法模式详解(包含与类加载器不得不说的故事)                   作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可。                   模板方法模式,这是一个在许多优秀的开源项目中LZ见的最多的一个设计模式,也是LZ觉得最为优
sscanf ,sscanf ,sscanf
sscanf ,sscanf ,sscanf
sscanf函数的高级用法
sscanf函数的高级用法 sscanf函数的高级用法 sscanf函数的高级用法 sscanf函数的高级用法
疑问,求解?
对于初级入门的学生来说,学习什么最简单?最容易懂?
关于拼多多新手开店的疑问及解答
    新手在拼多多开店肯定会遇到不少问题,例如开车商品的曝光问题、系统推荐一样的竞品怎么办、活动定价低却不通过等,这些都是会影响拼多多店铺运营的。就这几点疑惑,为大家整理了4个疑问及解答。    1、为什么我两个店同样的商品开场景推广,一个店只开的商品只有几个曝光率就有几千个,另一个店开了十几个,曝光率只有几十呢?    商品基础一样吗?基础销量、有效评价和自然排名一样吗?如果不一样的话,那么在...
【算法结构】一些经典的算法和数据结构的问题
输入是一个表达式,比如说是1*2-3+4*5,要求计算出这个表达式的值。 思路:不瞻前,只顾后。 在计算的时候,如果当前运算符是乘除法,则直接计算出来,再考虑后续的。如果当前的操作符不是乘除,则“顾后”,查看后面的操作符是不是乘除法,如果是乘除法,则计算乘除法,否则把当前的加减法计算出来,再计算后续的。 [java] view plaincopy