scanf输入后执行的程序就直接结束了,后面的printf也不再打印了
不知道你这个问题是否已经解决, 如果还没有解决的话:1、格式
scnaf是输入函数,其格式如下
scanf("格式控制",变量地址);
举个例子:其中双引号里面是一个%d,表示通过这个scanf用户需要输入一个int型的变量,将其存放在int型变量n中。
scanf("%d",&n);
2、常见的数据类型变量的scanf格式符
数据类型 |
格式符 |
举例 |
int |
%d |
scanf("%d",&n); |
long long |
%lld |
scanf("%lld",&n); |
float |
%f |
scanf("%f",&fl); |
double |
%lf |
scanf("%lf",&db); |
char |
%c |
scanf("%c",&c); |
字符串(char数组) |
%s |
scanf("%s",str); |
说明:
3、针对一些输入带空格的说明
(1)输入整型数字,用空格隔开,即这样输入:3 4 ,在两个%d之间可以不加空格
因为scanf对除了%c以外的其他格式符(如%d)的输入都是以空白符(即空格、换行等)作为结束判断标志的。
int a,b;
scanf("%d%d",&a,&b);
1)、输入可以以空格隔开输入
存的结果
2)、输入也可以换行输入
存的结果
(2)在使用%c的使用,他会把空格读入
1)实例1 :%c之间不加空格
char a,b;
sacnf("%c%c",&a,&b);
输入:c和其后空格 输出:a被赋值为字符'c',b为空格
2)实例2 : %c之间加空格
char a,b;
scanf("%c %c",&a,&b);
输入: 输出:
总结:因此可以看出%c会把空格按字符读入,其他方式不会。
(3)字符数组使用%s读入的时候以空格跟换行作为读入结束的标志
char str[20];
scanf("%s",str);
printf("%s",str);
return 0;
输入: 输出:
可见是以空格或换行作为读入的结束标志的
scanf有没有加&符号?看看代码
用代码快贴出代码