C语言如何做到回车停止输入
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何做到回车停止输入相关的知识,希望对你有一定的参考价值。
定义了一个整型数组 int a[100],希望按回车键时停止输入,但是以下语句不管用:
do
scanf("%d",&idata[num]);
num++;
while(idata[num] != '\n');
回车后还是不停地等待输入状态,咋办?
1、打开软件,直接使用int类型来定义一个变量用于保存getchar()返回的字符类型。
2、接下来是循环,如下图所示,直到输入的字符为回车键则退出并输出所有输入的内容。
3、最后,全部的代码如下图所示,输入好了之后回车确定,这样就可以直到回车停止输入。
参考技术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);
这样以空格隔开各个数字,输入若干以后按回车即可。
但是容错性不好,如果结尾在按回车前多输入了一个空格,那么将继续循环。
如果提升了容错性,那么代码将变得比较复杂。本回答被提问者采纳 参考技术B 呵呵,这个问题我也想过,想出了一个不怎么成熟的办法。
#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
他说的好! 参考技术C 在循环条件中检查回车即退出循环便可。
代码示例:
#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;
参考技术D 你这样可定不行 scanf()函数是会过滤enter的
所以你的idata[num]永远的得不到enter的ASCII的值
关于c语言中会回车键的功能
我以前问过别人告诉我 说是 执行 和换行两个字符 那请问是先换行还是现执行 而执行指的又是什么 是指把数据 从键盘缓冲区 送到计算机内 还是指 命令程序运行 其实我是不太明白 在以字符串形式 向二位字符数组中的一位数组分别 输入字符串时 在gets();前面加的那个getchar();所获得的是哪个字符?biru void input(int num[],char name []) int i; for(i=0;i<N;i++) printf("input NO.:"); scanf("%D",&num[i]); printf("input name:"); getchar(); gets(name[i]); 请问这个getchar();获得是哪个字符;在输入完数字后按下回车 紧接着输入字符;我试过如果不加getchar();再输入数字后按下回车 会直接输入input name:input NO.:也就是说跳过了字符输入 而gets获得了一个结束字符 所以跳过了 可是那个字符是什么 换行吗?如果换行符在输入到字符数组中后字符数组结束 也就是说换行符实际上='\0'? 可是为什么在按下回车后 input name:input NO.:会在下一行输出 如果说换行备gets();获得不应该不输出换行吗 况且在输入完 整形数据后 换行并没有被接收 它属于屏幕控制字符 不应该紧接着输入吗?
参考技术A 你说的执行是回车符吧('\r',0x0d),
在这里你可以无视它.
你在按下回车键时,实际读入输入缓冲区的只有一个换行符('\n',
0x0a)。
scanf("%d",&num[i]);执行后,
你输入数字123,
按回车,输入缓冲区的内容是"123\n".
这时数字被scanf读入,
但是输入缓冲区里还有一个'\n'.
getchar()把'\n'取出,以免影响gets.
而gets在遇到'\n'时会停止读数据,所以如果不用getchar取出'\n',
gets遇到'\n'立即停止,只能读到一个空串,
'\0'.
这个'\0'是gets自己添加到字符串尾的,读不到数据就会有这样一个字符,这个是字符串结束标志,并非读到的字符。
以上是关于C语言如何做到回车停止输入的主要内容,如果未能解决你的问题,请参考以下文章