• C语言中关于scanf函数的用法


    scanf()函数的控制串
    
    函数名: scanf
    
    功 能: 执行格式化输入
    
    用 法: int scanf(char *format[,argument,...]);
    
    scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。
    
    其调用格式为: scanf("<格式化字符串>",<地址表>);
    
    scanf()函数返回成功赋值的数据项数,出错时则返回EOF。
    
    其控制串由三类字符构成:
    1.  格式化说明符; 
    2.  空白符; 
    3.  非空白符;
    
    (A) 格式化说明符
    
    格式字符 说明 
    %a 读入一个浮点值(仅C99有效) 
    %A 同上 
    %c 读入一个字符 
    %d 读入十进制整数 
    %i 读入十进制,八进制,十六进制整数 
    %o 读入八进制整数 
    %x 读入十六进制整数 
    %X 同上 
    %c 读入一个字符 
    %s 读入一个字符串 
    %f 读入一个浮点数 
    %F 同上 
    %e 同上 
    %E 同上 
    %g 同上 
    %G 同上 
    %p 读入一个指针 
    %u 读入一个无符号十进制整数 
    %n 至此已读入值的等价字符数 
    %[] 扫描字符集合 
    %% 读%符号
    
    附加格式说明字符表 
    修饰符 说明 
    L/l 长度修饰符 输入""数据 
    h 长度修饰符 输入""数据 
    W 整型常数 指定输入数据所占宽度 
    * 星号 空读一个数据 
    hh,ll同上h,l但仅对C99有效。
    
    (B) 空白字符
    
    空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。
    
    (C) 非空白字符
    
    一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
    其他: 
    在scanf函数中,我们可以使用 %c来读取一个字符,使用 %s 读取一个字符串. 但是读取字
    符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此我们只能读取一个单
    词,而不是整行字符串.因此一般使用fgets来读取一个字符串.其实scanf函数也可完成这样的
    功能,而且还更强大.
    这里主要介绍一个参数,%[ ] ,这个参数的意义是读入一个字符集合. [ ]是个集合的标
    志,因此%[ ]特指读入此集合所限定的那些字符, 比如 %[A-Z] 是输入大写字母,一旦遇到不在
    此集合的字符便停止. 如果集合的第一个字符是" ^ ", 这说明读取不在" ^ " 后面集合的字
    符,既遇到" ^ " 后面集合的字符便停止.注意此时读入的字符串是可以含有空格的.
    Eg. 输入一个字符串, 这个字符串只含有小写字符.遇到第一个不是小写字符时停止.
    scanf("%[a-z],str);
    Eg. 想输入一个字符串, 遇到 "." 停止,可设计如下:
    scanf("%[^.]", str);
    使用这个参数,你可以完成许多强大的功能呦!
    #include "1.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int t1(void)
    {
        char str[50];
        scanf_s("%[^
    ]",str);
        printf("str = %s
    ", str);
        return 0;
    }
    
    /*
    root@ubuntu:/work/demo# ./cmd
    1234 std 435
    str = 1234 std 435
    */

    引用:

    C语言中关于scanf函数的用法

    C语言 中scanf详解 http://wenku.baidu.com/view/3c396904de80d4d8d15a4f75.html

  • 相关阅读:
    WxInput模块则比较彻底的解决了这个问题
    使用context来传递数据,一个context是一系列变量
    demo工程的清单文件及activity中api代码简单示例
    Tomcat学习总结(6)——Tomca常用配置详解
    Tomcat学习总结(5)——Tomcat容器管理安全的几种验证方式
    Tomcat学习总结(4)——基于Tomcat7、Java、WebSocket的服务器推送聊天室
    Tomcat学习总结(3)——Tomcat优化详细教程
    Tomcat学习总结(2)——Tomcat使用详解
    Tomcat学习总结(1)——Tomcat入门教程
    TCP/IP协议:OSI七层模型、TCP/IP四层模型的对比
  • 原文地址:https://www.cnblogs.com/mylinux/p/4635514.html
Copyright © 2020-2023  润新知