C语言之scanf中的格式

  • scanf函数原型
  • 控制格式
  • 1.%[^\n]%*c
    • 例子1
    • 例子2
  • 1.%[]
    • 例子1
    • 例子2

scanf函数原型

  int scanf( const char *format, ... );

见可变参数求和
https://blog.csdn.net/csdn_kou/article/details/79996606

控制格式

%c 一个单一的字符 
%d 一个十进制整数 
%i 一个整数 
%e, %f, %g 一个浮点数 
%o 一个八进制数 
%s 一个字符串 
%x 一个十六进制数 
%p 一个指针 
%n 一个等于读取字符数量的整数 
%u 一个无符号整数 
%[] 一个字符集 
%% 一个精度符号

1.%[^\n]%*c

经常需要读入一行字符串,而这串字符里面可能有空格、制表符等空白字符,如果直接用%s是不可以的,

例子1

输入:cs dn

char buf[100];
scanf("%s", buf);

输出:cs

例子2

输入:cs dn

    scanf("%[^\n]%*c",str);就可以了,

输出:cs dn

1.%[]

当遇到第一个不再给定字符串中的字符时就停止

例子1

输入:123456789

    char a[10];
    scanf("%[1-7]", &a);
    printf("%s\n", a);

输出:1234567

例子2

输入:abcdefg

    char a[10];
    scanf("%[a-d]", &a);
    printf("%s\n", a);

输出:abcd

你可能感兴趣的:(C语言总结)