scanf有什么功能(你真的了解scanf吗)(1)

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。

其调用格式为: scanf("<格式化字符串>",<地址表>);

scanf()函数返回成功赋值的数据项数,出错时则返回EOF。

scanf有什么功能(你真的了解scanf吗)(2)

说明:

sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。第一个参数可以是一个或多个{%[*][width][{h|l|I64|L}]type|''|'\t'|'\n'|非%符号}

注:

1、*亦可用于格式中,(即%*d和%*s)加了星号(*)表示跳过此数据不读入.(也就是不把此数据读入参数中)

2、{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。

3、width表示读取宽度。

  • 例一. 常见用法。

  • sscanf("123456 asdf", "%s", buf);

    printf("%s\n", buf); //结果为:123456

    sscanf("123456 ", "%4s", buf);

    printf("%s\n", buf); //结果为:1234

    sscanf("123456 abcdedf", "%[^ ]", buf);

    printf("%s\n", buf); //结果为:123456

    sscanf("123456abcdedfBCDEFxyz", "%[1-9a-z]", buf);

    printf("%s\n", buf); //结果为:123456abcdedf

    sscanf("123456 abcdedfBCDEFxyz", "%[^A-Z]", buf);

    printf("%s\n", buf); //结果为:123456 abcdedf

    sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);

    printf("%s\n", buf); //结果为:12DDWDFF

    sscanf("hello, world", "%*s%s", buf);

    printf("%s\n", buf); //结果为:world

    大家如果对编程感兴趣,想了解更多的编程知识,解决编程问题,咨询编程学习,可以关注我们的程序员互动联盟(coder_online),这里有java高手、C /C高手、windows/Linux高手等你来。

    ,