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

定义了一个整型数组 int a[100],希望按回车键时停止输入,但是以下语句不管用:
do
{
scanf("%d",&idata[num]);
num++;
} while(idata[num] != '\n');
回车后还是不停地等待输入状态,咋办?

1、打开软件,直接使用int类型来定义一个变量用于保存getchar()返回的字符类型。

2、接下来是循环,如下图所示,直到输入的字符为回车键则退出并输出所有输入的内容。

3、最后,全部的代码如下图所示,输入好了之后回车确定,这样就可以直到回车停止输入。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-15
呵呵,这个问题我也想过,想出了一个不怎么成熟的办法。
#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);
}
这样以空格隔开各个数字,输入若干以后按回车即可。
但是容错性不好,如果结尾在按回车前多输入了一个空格,那么将继续循环。
如果提升了容错性,那么代码将变得比较复杂。本回答被提问者采纳
第2个回答  推荐于2017-09-06
在循环条件中检查回车即退出循环便可。
代码示例:
#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;
}
第3个回答  2010-02-05
呵呵,这个问题我也想过,想出了一个不怎么成熟的办法。
#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

他说的好!
第4个回答  2010-02-05
你这样可定不行 scanf()函数是会过滤enter的
所以你的idata[num]永远的得不到enter的ASCII的值

c语言如何让字符一直输入直到回车
将源码保存到t.c文件,通过gcc 来进行编译。 gcc -o t t.c 编译后会生成一个名称为t的可执行文件,执行如下命令即可执行。 .\/t 为了方便,我直接用;号将这两条命令连接在了一起,执行效果如下图所示。一直在输入,直到按一下回车键,即可终止输出并输出所以输入的内容。

C语言如何做到回车停止输入
1、打开软件,直接使用int类型来定义一个变量用于保存getchar()返回的字符类型。2、接下来是循环,如下图所示,直到输入的字符为回车键则退出并输出所有输入的内容。3、最后,全部的代码如下图所示,输入好了之后回车确定,这样就可以直到回车停止输入。

编译c语言时,如何使按下enter键时停止循环
1、方法1:while((c=getchar())!='\\n')方法2:在循环体中使用if(c=='\\n') break;注:c为输入的变量 2、例子:方法1:while((c=getchar())!='\\n'){ \/\/do sth } 方法2:for(i=0;i<100;i++) { scanf("%c",&a[i]);if(a[i]=='\\n')break;} ...

C语言 scanf输入回车或空格时停止输入
scanf("%d",&a[i]); 无此功能,当你连续按回车时,它继续等待输入数据。可以用gets(s);再sscanf读数。用strlen(s)判断为空行,则停止输入:include<stdio.h> include<stdlib.h> void main(){ int i,a[10];char s[20];for(i=0;i<10;i++) { gets(s);if (strlen(s) < 1) brea...

C语言如何实现scanf若什么都没输入直接回车则结束输入?
你列举的这几个都是多组数据输入循环;这些循环是没有结束标志的;按回车是进入下一次循环;加一个if---break;条件判断结束循环;if(...){ ...;break;} do{ scanf("%d",&a);}while(getchar()!='\\n');\/\/遇到回车符结束;就是scanf函数不输入任何数,按回车直接结束循环;for(int ...

C语言在输入一维数组时,如果想要用回车停止输入,那么这种写法对吗?_百 ...
这还真有点小学问,如果是字符数组,if(a[i]!='\\n') break;就可以了,但得把不需要的那个'\\n'从数组中用a[i]='\\0';抹掉并添加了结束符。要是数字数组,比如整数数组呢,上面方法就不凑效了。用下面代码可实现——

C语言中怎样用回车实现输入中断
main(){ char c;while(c!=13) \/*不是回车符则循环*\/ { c=getch();if(c==0X1B)continue; \/*若按Esc键不输出便进行下次循环*\/ printf("%c\\n", c);} }

c语言输入如何通过回车键结束
include <stdio.h>#include <conio.h>int main(){ char ch; while( (ch=getch()) != '\\r') { putchar(ch); \/\/ getch()只接受字符到ch中,不显示 \/\/ your code } return 0;}

c语言 怎样按回车 结束输入 不读入换行到地址
用一个getchar()把最后的换行符清除出输入流 比如说你先用一个scanf输入了一个字符串 然后你想再输入一个字符 这个时候你应该先getchar一下,因为换行符仍然在输入流中 之后就可以进行正常的输入了(用getchar gets scanf随你乐意)

c语言中怎么以回车退出循环
while\\n"),这个程序是只需要按一下回车就可以退出了。getchar有一个int型的返回值.当程序调用getchar时。将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符。要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCII码。用getch函数暂停程序运行,当按任意键后程序继续运行。

相似回答