A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本文在教学视频的基础上,进行了思维发散,探索出了一些视频中未讲到的内容。

1. 当要求输入的变量为int型而实际输入的为实型时,只获取整数部分。
  1. #include <stdio.h>
  2. int main(int argc, const char * argv[]) {
  3.     int a;
  4.     scanf("%d",&a);
  5. printf("%d\n",a);
  6. return 0;
  7. }
复制代码

运行情况:
12.33
12//只获取了整数部分
Program ended with exit code: 0

2.当要求输入的变量为float型而实际输入的为字符型时,会导致无法成功接收。
  1. #include <stdio.h>
  2. int main(int argc, const char * argv[]) {
  3.     float a;
  4.     scanf("%f",&a);
  5. printf("%f\n",a);
  6. return 0;
  7. }
复制代码

运行情况:
a
0.000000//无法接受成功,为默认值0
Program ended with exit code: 0

3. 当指定域宽输入时,只接受包括小数点在内的位数。
  1. #include <stdio.h>
  2. int main(int argc, const char * argv[]) {
  3.     float a;
  4.     scanf("%6f",&a);
  5. printf("%f\n",a);
  6. return 0;
  7. }
复制代码

运行情况:
3.141592653
3.141500//只接收了3.1415共六个位
Program ended with exit code: 0

4. 接受单个变量(非字符型)值时,在输入值前,如果输入了空格、回车、tab都会被忽略。
  1. #include <stdio.h>
  2. int main(int argc, const char * argv[]) {
  3.     float a;
  4.     scanf("%f",&a);
  5. printf("%f\n",a);
  6. return 0;
  7. }
复制代码

运行情况:
//回车
//回车
            3.2//tab3.2
3.200000
Program ended with exit code: 0

5. 接受两个乃至多个变量(非字符型)值时,在输入第一个值前,如果输入了空格、回车、tab都会被忽略,此后在输入下一个数之前,如果输入了空格、回车、tab也都会被忽略。
  1. #include <stdio.h>
  2. int main(int argc, const char * argv[]) {
  3.     int a,b,c;
  4.     scanf("%d%d%d",&a,&b,&c);
  5. printf("%d,%d,%d\n",a,b,c);
  6. return 0;
  7. }
复制代码

运行情况:
        2//tab2
//回车
   3//多个空格3
//回车
                 4//tab多空格4
2,3,4
Program ended with exit code: 0

13 个回复

倒序浏览
不不不不我不
回复 使用道具 举报
受教了,经验啊
回复 使用道具 举报
总结的不错!
回复 使用道具 举报
stage 来自手机 中级黑马 2015-10-23 23:57:39
报纸
谢谢老板
回复 使用道具 举报
筒子们,俺的技术分不够。。。。。。好惨啊!!
回复 使用道具 举报

??啊?
回复 使用道具 举报

哈哈,自己无聊的时候试的,供参考。
回复 使用道具 举报

嘿嘿,谢谢认可!!!
回复 使用道具 举报

哈,老板个啥啊,技术分不够,我好郁闷啊。
回复 使用道具 举报
支持一下啊!
回复 使用道具 举报

灰常感谢!
回复 使用道具 举报
scanf接收字符串时不能接收空格,字符串接收要用gets
回复 使用道具 举报
另外两个帖子,比这个有意思,这个是视频里的基础部分。。。。。。。。。。结果那俩木有人看了。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马