本文在教学视频的基础上,进行了思维发散,探索出了一些视频中未讲到的内容。
1. 当要求输入的变量为int型而实际输入的为实型时,只获取整数部分。
- #include <stdio.h>
- int main(int argc, const char * argv[]) {
- int a;
- scanf("%d",&a);
- printf("%d\n",a);
- return 0;
- }
复制代码
运行情况:
12.33
12//只获取了整数部分
Program ended with exit code: 0
2.当要求输入的变量为float型而实际输入的为字符型时,会导致无法成功接收。
- #include <stdio.h>
- int main(int argc, const char * argv[]) {
- float a;
- scanf("%f",&a);
- printf("%f\n",a);
- return 0;
- }
复制代码
运行情况:
a
0.000000//无法接受成功,为默认值0
Program ended with exit code: 0
3. 当指定域宽输入时,只接受包括小数点在内的位数。
- #include <stdio.h>
- int main(int argc, const char * argv[]) {
- float a;
- scanf("%6f",&a);
- printf("%f\n",a);
- return 0;
- }
复制代码
运行情况:
3.141592653
3.141500//只接收了3.1415共六个位
Program ended with exit code: 0
4. 接受单个变量(非字符型)值时,在输入值前,如果输入了空格、回车、tab都会被忽略。
- #include <stdio.h>
- int main(int argc, const char * argv[]) {
- float a;
- scanf("%f",&a);
- printf("%f\n",a);
- return 0;
- }
复制代码
运行情况:
//回车
//回车
3.2//tab3.2
3.200000
Program ended with exit code: 0
5. 接受两个乃至多个变量(非字符型)值时,在输入第一个值前,如果输入了空格、回车、tab都会被忽略,此后在输入下一个数之前,如果输入了空格、回车、tab也都会被忽略。
- #include <stdio.h>
- int main(int argc, const char * argv[]) {
- int a,b,c;
- scanf("%d%d%d",&a,&b,&c);
- printf("%d,%d,%d\n",a,b,c);
- return 0;
- }
复制代码
运行情况:
2//tab2
//回车
3//多个空格3
//回车
4//tab多空格4
2,3,4
Program ended with exit code: 0
|
|