C语言 scanf函数 相关

来源:互联网 发布:投资银行 知乎 编辑:程序博客网 时间:2024/06/05 10:28

1如果输入四个数字int类型 则用多个空格隔开 或者这个回车

比如#include <stdio.h>
int main(void){
    int a,b;
int c,d;
    printf("input a,b,c,d\n");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
    return 0;
}


如果 是 int和char 交叉输入

比如#include <stdio.h>
int main(void){
    int a,b;
char c,d;
    printf("input a,b,c,d\n");
    scanf("%d%c%d%c",&a,&b,&c,&d);
    printf("a=%d,b=%c,c=%d,d=%c\n",a,b,c,d);
    return 0;
}

则中间无任何输入,连续输入。



原理:

  1. 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
  2. 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

例如:
  1. scanf("%c%c%c",&a,&b,&c);
输入 d、e、f 则把'd'赋予a,' ' 赋予b,'e'赋予c。只有当输入为 def 时,才能把'd'赋于a,'e'赋予b,'f'赋予c。

如果在格式控制中加入空格作为间隔,如:
  1. scanf ("%c %c %c",&a,&b,&c);
则输入时各数据之间可加空格。

详情请见http://c.biancheng.net/cpp/html/34.html

1 0
原创粉丝点击