scanf在输入两个连续的整型变量的时候是没有垃圾字符一说的
如:
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
输入:10/20
输出:a = 10, b = 1
输入:10=20
输出:a = 10, b = 1
我以为在scanf中的两个%d中间加一个空格会吃掉中间输入的垃圾字符,一直没想明白。后来问了老师,才知道垃圾字符是对char型输入字符的时候才有的,并没有 垃圾整型;
但在输入整型数字的时候,两个数字中间加空格、回车、tab都会被吃掉
输入:10 20//中间有多个空格
输入:10
20// 两个数中间有多个回车
输入:10 20//中间多个tab
输出的都是:a = 10, b = 20
如果想要在两个整型中间输入字符就要在scanf中加上相对应地格式
scanf("%d/%d", &a, &b);
printf("a = %d, b = %d\n", a, b);
输入:10/20(回车)
输出:a = 10, b = 20 //正常输出
输入:10|20(回车)
输出:a = 10, b = 1 //b没能正确输入
输入:10=20(回车)
输出:a = 10, b = 1 //b没能正确输入
输入:10=(回车)
输出:a = 1, b = 1;
输入:#(回车)
输出:a = 47874144, b = 1 //a, b都没能正常输入,且a内为一个随机数
只要输入的格式和scanf中的格式不同,就会结束输入
所以scanf中的格式怎么写我们就要怎么输入