[C]scanf-格式输入函数-创新互联

scanf 函数称为格式输入函数,即把用户键盘输入的内容保存到指定的变量中。[C]scanf-格式输入函数
scanf 函数签名
scanf("格式控制字符串", 变量地址列表)

scanf 函数是一个标准库函数,函数原型位于 中。与 printf 函数相同,C语言允许隐式使用 scanf 函数,即可以不提前包含 头文件。如果隐式使用 scanf 或 printf 函数,编译时系统会发出隐式调用警告。

十载的盐山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整盐山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“盐山网站设计”,“盐山网站推广”以来,每个客户项目都认真落实执行。

scanf 不能在控制台回显非格式化占位符字符串,也就是说不能在控制台显示输入提示。

scanf 第一个参数 “格式控制字符串” 可以分为两部分,一部分为格式占位符,另一部分为变量分隔符。

格式占位符
%[*][输入数据宽度][长度]类型

scanf 支持输入的类型如下:

1. d - 十进制整数

2. o - 八进制整数

3. x - 十六进制整数

4. u - 无符号十进制整数

5. f 或 e - 小数形式或指数形式的实型数

6. c - 单个字符

7. s - 字符串

变量分隔符

变量分隔符是指在输入多个变量数据时用于分隔输入数据的非格式占位符。例如:

scanf("%dA%d", &a, &b)

在控制台输入:
123A456 结果为:a= 123, b = 456

其中 scanf 第一个参数中的 A 就是一个变量分隔符。如果 scanf 第一个参数中没有指明变量分隔符,那么系统默认空格符、Tab符或回车符作为分隔符,C编译器在遇到这三个字符或者非法字符时,就认为输入的数据结束。例如:

scanf("%d%d", &a, &b);

在控制台输入:
123 456

或者
123456

结果都是:a= 123, b = 456
scanf 函数实例 1. 一般用法
int main(void) {
int a, b;
    printf("Input a, b
");
    scanf("%d%d", &a, &b);
    printf("a=%d, b=%d
", a, b);
return 0;  
}

输入与输出:

$ ./a.out 
Input a, b
123 456
a=123, b=456
2. 使用 * 符号表示跳过该输入值

将上例代码修改为:

scanf("%d%*d%d", &a, &b)

输入与输出:跳过第二个输入值 456, 将第三个输入值 789 赋给了变量 b。

$ ./a.out 
Input a, b
123 456 789
a=123, b=789
3. 格式占位符中限定数据宽度

将上例代码修改为:

scanf("%4d%4d", &a, &b);

输入与输出:

$ ./a.out 
Input a, b
12345 56789
a=1234, b=5

$ ./a.out 
Input a, b
123456789
a=1234, b=5678

第一次输入时,C程序直接截取了 12345 的前四位赋给了变量 a,然后从剩余的 5 56789 中准备再截取四位赋给变量 b,但在第二个位置遇到了空格符,之前说过C程序是默认空格符为数据分隔符,因此C程序认为该变量数据输入结束,将 5 赋给了b。


文章名称:[C]scanf-格式输入函数-创新互联
文章源于:http://myzitong.com/article/dspdoi.html