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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何做到回车停止输入相关的知识,希望对你有一定的参考价值。

呵呵,这个问题我也想过,想出了一个不怎么成熟的办法。
#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);

这样以空格隔开各个数字,输入若干以后按回车即可。
但是容错性不好,如果结尾在按回车前多输入了一个空格,那么将继续循环。
如果提升了容错性,那么代码将变得比较复杂。
参考技术A 呵呵,这个问题我也想过,想出了一个不怎么成熟的办法。
#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);

这样以空格隔开各个数字,输入若干以后按回车即可。
但是容错性不好,如果结尾在按回车前多输入了一个空格,那么将继续循环。
如果提升了容错性,那么代码将变得比较复杂。
回答者:
isd12345678
-
五级
2010
他说的好!
参考技术B 在循环条件中检查回车即退出循环便可。
代码示例:
#include<stdio.h>
int
main()

int
a[50]=0,n;
for(n=1,scanf("%d",&a[n-1]);getchar()!='\n';n++)//判断getchar()!='\n'是否为换行。
scanf("%d",&a[n]);

return
0;
参考技术C #include
void
main()

char
buf[100];
int
i=0,j;
while((buf[i]=getchar())!=eof)
//在新的一行,ctrl+z
回车表示输入结束,具体请参考后面运行结果
i++;
for(j=0;j
评论
0
0
加载更多
参考技术D 你这样可定不行
scanf()函数是会过滤enter的
所以你的idata[num]永远的得不到enter的ASCII的值

以上是关于C语言如何做到回车停止输入的主要内容,如果未能解决你的问题,请参考以下文章

关于c语言中会回车键的功能

C语言输入是怎么区分空格和回车的

c语言中怎样用scanf()读入带空格的字符串

c语言 数制转换(递归)

C语言:从键盘输入一篇英文文本,统计每个英文字母(分大小写)及空格、数字、回车和其他字符,咋编?

怎样检查C语言输入数据的合法性?