zoukankan      html  css  js  c++  java
  • scanf()的使用

    scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

    如下面代码:

    #include<stdio.h>
    int main()
    {
        int a,b;
        scanf("%d%d",&a,&b);
        printf("a=%d	b=%d
    ",a,b);
    }

    运行结果:

    4
    3
    a=4     b=3
    
    --------------------------------
    Process exited after 3.202 seconds with return value 8
    请按任意键继续. . .
    

    此段代码要求用户输入a,b的数值。

    在scanf语句的格式串中由于没有非格式字符在“%d%d”之间作输入时的间隔,所以永无在输入的时候两个数据之间需要用空格或者回车间隔。

    格式字符:

     d格式字符。用来输出十进制整数。有以下几种用法:%d,按整形数据的实际长度输出。%md,m为指定的输出字段的宽度。%ld,输出长整形数据。
     o格式符,以八进制整形式输出整数。
     x格式符,以十六进制数形式输出整数。
     u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。
     c格式符,用来输出一个字符。
     s格式符,用来输出一个字符串。
     f格式符,用来输出实数(包括单双精度),以小数形式输出。
     e格式符,以指数形式输出实数。
     g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出是占宽度较小的一种),且不输出无意义的零。
     p格式符,用于变量地址的输出。
     %[scanfset]:scanfset 有两种形式:一种是以非 “^” 字符开头的 scanset , 表示在读入字符串时将匹配所有在 scanfset 中出现的字符,遇到非scanfset 中的字符时输入就结束;另外一种形式是以 “^” 字符开头的scanfset ,表示在读入字符串时将匹配所有不在scanfset 中出现的字符,遇到scanfset 中的字符输入就结束。
             例如:  scanf("%[^,]",a);   //在输入 ',' 的时候后面输入的内容将不会接收
    其余出现的都可以理解为非格式字符。
     
    “*”符
    用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。
    #include<stdio.h>
    int main()
    {
        int a,b;
        scanf("%d,%*d,%d",&a,&b);m n
    a=m b=  c=n
    --------------------------------
    Process exited after 2.551 seconds with return value 11
    请按任意键继续. . .printf(
    "a=%d b=%d",a,b); }在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
    4,3,2
    a=4     b=2
    --------------------------------
    Process exited after 5.453 seconds with return value 7
    请按任意键继续. . .
    

    在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。

    C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

    在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

    例:

    下面的代码因为中间没有使用空格等间隔,所以a=m,b=空格,c=n。

    #include<stdio.h>
    int main()
    {
        char a,b,c;
        scanf("%c%c%c",&a,&b,&c);
        printf("a=%c b=%c c=%c",a,b,c);
    }
    m n
    a=m b=  c=n
    --------------------------------
    Process exited after 2.551 seconds with return value 11
    请按任意键继续. . .
    
  • 相关阅读:
    Maven实战读书笔记(三):Maven依赖
    Maven实战读书笔记(四):Maven生命周期与插件
    Maven实战读书笔记(一):Maven概述
    Spring Data Redis入门示例:程序配置(五)
    Spring Data Redis入门示例:字符串操作(六)
    zabbix api使用
    elasticsearch mappings之dynamic的三种状态
    自动添加windows 2012用户,并在jump添加授权
    python 查询es数据
    python获取zabbix Triggers top100
  • 原文地址:https://www.cnblogs.com/foreverW/p/6659733.html
Copyright © 2011-2022 走看看