C语言如何做到回车停止输入

Python07

C语言如何做到回车停止输入,第1张

呵呵,这个问题我也想过,想出了一个不怎么成熟的办法。

#include<stdio.h>

void

main()

{

int

a[100],num=0

char

k

do

{

scanf("%d",&a[num])

num++

k=getchar()

}while(k!='\n'&&num<100)

}

这样以空格隔开各个数字,输入若干以后按回车即可。

但是容错性不好,如果结尾在按回车前多输入了一个空格,那么将继续循环。

如果提升了容错性,那么代码将变得比较复杂。

思路:使用while(scanf("%d",&n)&&n),表示输入正确并且输入的数不等于0时继续循环,否则跳出循环。

参考代码:

#include <stdio.h>

int main()

{

int n

while(scanf("%d",&n)&&n){

printf("%d\n",n)

}

return 0

}

/*

运行结果:

1

1

2

2

0

*/

这还真有点小学问,如果是字符数组,if(a[i]!='\n') break就可以了,但得把不需要的那个'\n'从数组中用a[i]='\0'抹掉并添加了结束符。要是数字数组,比如整数数组呢,上面方法就不凑效了。用下面代码可实现——