黑马程序员技术交流社区
标题:
关于scanf的问题,为什么第二个可以正常运行,第一个那个char类型不会打印出来???
[打印本页]
作者:
ios_fce
时间:
2014-4-25 11:08
标题:
关于scanf的问题,为什么第二个可以正常运行,第一个那个char类型不会打印出来???
#include <stdio.h>
int main()
{
//定义一个变量用来保存用户输入的整数
int number;
scanf("%d", &number);
printf("%d\n",number);
char c;
scanf("%c\n",&c);
printf("%c",c);
return 0;
}
------------------------------------------
#include <stdio.h>
int main()
{
//定义一个变量用来保存用户输入的整数
// int number;
//
// scanf("%d", &number);
// printf("%d\n",number);
//scanf函数回车之后就不能再执行另一个scanf()函数了。
int a,b;
scanf("%d %d",&a,&b);
printf("a=%d b=%d\n",a,b);
int c;
scanf("%d",&c);
printf("%d\n",c);
}
作者:
悠悠·漠漠
时间:
2014-4-25 11:34
scanf里面不要加换行,\n对它有特殊含义
作者:
郑亚鸽
时间:
2014-4-25 11:36
\n在scanf中不表示等待换行符,而是读取并放弃连续的空白字符
scanf("%c\n",&c);这里的'\n'意味着输入完毕,不会再接受输入值,且程序也不结束
故改为scanf("%c",&c);
作者:
ios_fce
时间:
2014-4-25 11:51
写错了,去掉\n也不行
作者:
葬花桥
时间:
2014-4-25 12:06
本帖最后由 葬花桥 于 2014-4-25 12:07 编辑
楼主是不是在Xcode调试程序?我在Xcode中也会遇到这种情况,在第一个scanf输入之后程序直接结束并且还会输出printf中的字符串,但是程序本身是没有问题的,因为我把程序放到VS2012中去是可以正常运行的,这应该是Xcode的问题!楼主可以先把程序放到windos中去调试看看
作者:
兰闻天
时间:
2014-4-25 12:23
数据类型的问题吧,可能是第一个输入的是int型,第二个输入的是char型,xcode不支持吧。都是int型就好使。
作者:
大龄产妇
时间:
2014-4-25 13:36
scanf 语句默认结尾就是\n ,所以不必要再加换行了。
例如: scanf("%d\n%d",%a,%d);若想换行可以中间加\n 或者 空格键
当中间是空格键时:用户默认输入完后 , 空格 和 回车 程序都能继续。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2