c语言的空格和回车

这个是程序的开头部分,用来输入并检测所输入的是否-9到9里面的数字,和是否一共有6个数字输入到里面,我发现这个程序如果直接输入数字然后按回车能正常运行,但是当我按完空格再... 这个是程序的开头部分,用来输入并检测所输入的是否-9 到 9里面的数字,和是否一共有6个数字输入到里面,我发现这个程序如果直接输入数字然后按回车能正常运行,但是当我按完空格再按回车,输入的这个过程不能完成(要我继续输数字,但是我想按回车后就直接进入检测程序),求高人解答~~我的这个开始时这样的:
for (i = 0;i <= 6;i++){
m = scanf("%d",&array[i]);
if (array[i] != 0 ){ //输入0时当作没输入
input++;
}
f = getchar();
if (m==0 || array[i] >9 || array[i] < -9){
printf("error"); //当输入的为字母或者不在范围的数字时输出error,并结束
return 0;
}
if (array[i] == 0){
i--; //当输入的为0时,由于当作没输入所以i--
if (f != '\n'){
continue; //如果按0后按回车,后面的检测就不用跳过
}
}
if (f == '\n' && input != 6){
printf("error"); //当没输完5个数字的时候就按回车,输出error
return 0;
}
if (f == '\n' && input == 6){
break; //当输入够6个数字以后,就算后面有n个0,按回车后直接跳到后面的程序
}
}
if (input != 6){
printf("error“); //当完成整个输入步骤后,检测是否只输入6个数字
return 0;
}
如果想到什么改善的地方也可以跟我说一下,谢了~~
展开
 我来答
hwm_2012
2013-04-25 · TA获得超过966个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:413万
展开全部
if (array[i] == 0){
i--; //当输入的为0时,由于当作没输入所以i--
if (f != '\n'){
continue; //如果按0后按回车,后面的检测就不用跳过
}
}
==>
if (array[i] == 0){
i--; //当输入的为0时,由于当作没输入所以i--
}
if (f != '\n'){
continue; //如果按0后按回车,后面的检测就不用跳过
}

//改后才是你想要的检查逻辑
追问
我试过了,不过你这个还是不能改善我说的那种情况,因为按空格后再按回车的话,k的值是空格,所以再按回车也没法执行跳出输入这一过程的命令
追答
你有没有发现,你一共7读了个数? 
做个容错也不用搞这么麻烦,是不是回车没关系,只要连继的读到六个合格的数就好,管它有没有多的空格干嘛
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_whales
2013-04-25 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:510万
展开全部
要保证能够容错,就要输入 字符
,字符串自己检查,并且处理出错的情况!

scanf("%d",&array[i]);这样的格式化输入,必须保证用户输入的数据格式是正确的。
更多追问追答
追问
所以??
追答
所以没有容错性,输入不对就出错!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
764582402
2013-04-25
知道答主
回答量:4
采纳率:0%
帮助的人:3万
展开全部
情问您是如何输入这六个数的:
1.六个数连着输入如123456<CR>
2.有空格1 2 3 4 5 6<空格><CR>
3.没空格1 2 3 4 5 6<CR>
另外最后一个printf("error“);的后三个字符是在中文输入法状态下输入的
数组定义的时候是如何写的:for (i = 0;i <= 6;i++)这句有可能下标越界了
1.array[6]
2.array[7]
追问
我定义数组时是定义array[7]的,因为所以i才要等于6,因为如果array[6]这个数不是0的话就证明多于6个数被输入进去了。。,输入进去的数字是 “没空格1 2 3 4 5 6”然后按回车的,不是连着输的。。printf那个是我在提问的时候改了下,不过没所谓的,我在编程那是用英文输入的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式