• C连载22-scanf转换说明中的修饰符


    一、scanf()转换说明中的修饰符

    转换说明 含义
    * 抑制赋值,示例:“%*d"
    数字 最大字段宽度,输入达到最大字段宽度处,或者第一次遇到空白字符为止,示例:"%10s"
    hh 把整数作为signed char 或者 unsigned char 类型读取
    ll 把整数作为long long或者unsigned long long类型读取(C99),示例:"%lld"、"%llu"
    h、l或者L "%hd"和"%hi”表明把对应的值存储为short int类型;“%ho”、“%hx"和”%hu"表明把对应的值存储为unsigned short int类型;"%ld"和"%li"表明把对应的值存储为long类型;"%lo"、“lx”和“%lu”表明把对应的值存储为unsigned long类型;“%le"、”%lf“和"%lg"表明把对应的值存储为double类型;在e、f和g前面使用L而不是l,表明把对应的值被存储为long double类型,如果没有修饰符,d、i、o和x表明对应的值被存储为int类型,f和g表明把对应的值存储为float类型
    j 在整形转换说明后面时,表明使用intmax_t或者uintmax_t类型(C99)示例:"%jd"、"%ju"
    z 在整形转换说明后面时,表明使用sizeof的返回类型,示例:"%zd"、”%zo"
    t 在整形转换说明后面时,表明使用表示两个指针差值的类型 ,示例:"%td"、"%tx"
    • scanf()函数每次读取一个字符,跳过所有的空白字符,直到遇到第一个非空白字符才开始读取。
    • 如果使用字段宽度,scanf()在字段末尾或者第一个空白字符的时候停止读取,无法利用字段宽度让只有一个%s的scanf()读取多个单词,最后要注意一点:当scanf()把字符串放进指定的数组的时候,它会在字符序列的末尾添加上'',让数组中的内容成为一个C字符串。

    二、格式字符串中的普通字符

    • scanf()函数中允许把普通字符放到格式字符串中,除了空格字符外的普通字符必须与输入字符串严格匹配。例如:
    scanf("%d,%d",&n,&m);//该函数将其解释成用户将会输入一个数字,一个逗号,然后再输入一个逗号
    scanf("%c",&ch);//从输入的第一个字符开始读取
    scanf(" %c",&ch);//从第一个非空白字符开始读取
    
    #include<stdio.h>
    #pragma warning(disable:4996)
    int D22_1_varwid(void) {
    	unsigned width, precision;
    	int number = 256;
    	double weight = 242.5;
    
    	printf("Enter a field 
    ");
    	scanf("%d", &width);
    	printf("The number is :%*d:
    ", width, number);
    	printf("Now enter a width and a precision.
    ");
    	scanf("%d %d", &width, &precision);
    	printf("Weight = %*.*f
    ", width, precision, weight);
    	printf("Done!
    ");
    
    	return 0;
    }
    

    22.1

    三、源码:

  • 相关阅读:
    javascript的函数调用什么时候加括号、什么时候不加括号
    妙味——JS学前预热03
    妙味——JS学前预热02
    妙味——JS学前预热01
    springbootday06 mysql
    springboot04 Ajax json Jquery
    springboot02 Thymeleaf
    springbootDay03 cookie和session 购物车技术
    Linux 基本命令
    NodeJs06 高并发
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/13664285.html
Copyright © 2020-2023  润新知