一.scanf() :格式输入函数(英文全称:Scan Format)
1.例1
#include<stdio.h>
main()
{
char a[]="输入任意字符串内容和一个整数内容: ";
int b;
printf("%s",a);
scanf("%s%d",&a,&b);
//这里的&符号表示地址,&a表示变量a的地址.也就是说这里是直接操作地址的!
printf("输入的任意字符串是: %s \n输入的任意整数是: %d \n\n",a,b);
//终端输入多个内容时 全部用空白字符隔开(空格 换行 制表符)
}
运行效果:
2.格式字符
同printf()函数上的格式字符基本相同: https://blog.csdn.net/u012336596/article/details/113881184
3.附加格式字符
也基本和printf()函数用的差不多: https://blog.csdn.net/u012336596/article/details/113881184#t2
没有 小数部分的精度控制
#include<stdio.h>
main()
{
int a;
char b[10];
double c;
puts("输入一个 短整型无前缀8进制整数: ");
scanf("%ho",&a);
printf("输入的是: %ho \n\n",a);
puts("输入6个字符: ");
scanf("%6s",&b);
//超出的则会被忽略
printf("输入的是: %s \n\n",b);
puts("输入一个双精度小数: ");
scanf("%lf",&c);
printf("输入的是: %f \n",c);
}
运行效果:
4.输入字符(易错)
#include<stdio.h>
main()
{
char a,b,c,d;
puts("分开输入两个字符: ");
scanf("%c %c",&a,&b);
//第一种写法: 空白字符可以起到分割作用
printf("输入的是:%c和%c \n",a,b);
putchar('\n');
puts("分开输入两个字符: ");
scanf("%c%c",&c,&d);
//第二种写法: 空白字符可能会被赋值到 某个字符变量的地址,无法起到分割作用
printf("输入的是:%c和%c \n",c,d);
putchar('\n');
}
运行效果:
5.自定义输入分隔标识
输入时,两个元素之间 要求输入指定的 符号用以分割.
如果分割符为空格则 输入时使用 回车 和 空格 均可起到分割作用
#include<stdio.h>
main()
{
int a,b,c,d,e,f;
puts("分别输入两个整数: ");
scanf("%d,%d",&a,&b);
//使用 ,符号 作为分隔标识
printf("输入的整数是%d和%d\n\n",a,b);
puts("分别输入两个整数: ");
scanf("%d;%d",&c,&d);
//使用 ;符号 作为分隔标识
printf("输入的整数是%d和%d\n\n",c,d);
puts("分别输入两个整数: ");
scanf("%d/%d",&e,&f);
//使用 /符号 作为分隔
printf("输入的整数是%d和%d\n\n",e,f);
}
运行效果: