C语言 scanf输入回车或空格时停止输入

main()
{
int i,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
}
输入一个数字再按空格会继续读入数字,如果输入的数据不足10个,怎么让它在输入完毕后按回车自动跳出循环?

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) break;
sscanf(&s[0],"%d",&a[i]);
printf("%d\n",a[i]);
};
printf("i=%d",i);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-04
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,a[10];
char c;
for(i=0;i<10;++i)
{
scanf("%d%c",a+i,&c);
printf("%d\n",a[i]);
if(c=='\n') break;
}
return 0;
}本回答被提问者和网友采纳
第2个回答  2010-05-26
#include<stdio.h>

main()
{
int k,i,a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
printf("是否继续输入 1:是 or 0 :否.请选择\n");
scanf("%d",&k);
if(k==0)
break;

}
system("pause");
}

感觉这种方法不怎么好,但可以解决简单的程序的跳出循环,如果有好的方法,要发给我啊

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语言如何输入空格之后,自动结束输入
printf("请输入A多项式系数和指数(用空格隔开,结束输入回车):\\n"); do{ scanf("%f %d

C语言中scanf处理输入数据时,遇到什么情况时该数据认为结束
1.遇到空格,或"回车",或"跳格",例子:scantf("%d%d",&a,&b)如果这样输入:12空格23当对a输入时,录入了12,然后遇到空格,满足条件,停止对a录入,所以a的值为12 2按指定宽度结束,例如"%3d",只取前3列 3遇到非法输入时。例如:scantf("%c%f",&b,&c) 若这样输入:a 123o.26 ...

C语言 请问scanf输入遇到空格自动断行怎么办?
如果每行是固定格式的话可以用fscanf函数 比如TXT中一行为: aa bb cc fscanf(fp , "%s %s %s" , a , b , c);\/\/fp为文件指针, a,b,b为char数组

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

c语言如何按回车停止录入
include <stdlib.h> int main(){ int a[50]={0},n,i;char buf[16];for(n=0;n<50;n++){ gets(buf); \/\/scanf 直接输入回车不会返回,这个函数可接收一个字符串 if(buf[0]==0) \/\/若字符串为空,说明直接输入了回车,退出 { break;} a[n]=atoi(buf);} for(i=0;a[i...

每次scanf不是要以回车结束的么?为何这么多scanf只用一次回车??
没到 输入流缓冲区里去。这就是清楚了,并非 scanf 一定要等 回车,scanf 只是等 输入流缓冲区 有数好取。键盘一次拍入很多数,回一次车,输入流缓冲区就有了很多数,scanf就不需等待回车不回车了。scanf 读数 以空白为数的分隔符,空格,回车属 空白。 回车 对 scanf 来说,是 数的分隔符。

C语言中用scanf需要输入的地方按回车怎么就退出了?
其实已经显示完a了,只不过太快了,你还没看见呢,程序就结束了。你应该在printf("a"); 的后一行加上一个断点,再运行,程序会停下来。也可以这样:include<cinio.h> main(){ int a;scanf("%d",&a);printf("%d",a);getch();}

用scanf函数时是不是回车是结束输入,空格当做ASCII接收?那什么情况下...
输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。 以下是合法输入方式: ① 3□□4□□□5↙ ② 3↙ 4□5↙ ③ 3(tab键)4↙ 5↙ 例2. #include "stdio.h" int main(void) { int a,b,c; scanf("%d,%d,%d",&a,&b,&c); printf("%d,%d,%d\/n",a,b,c); r...

c语言 以下程序为什么输入abc abc结果输出只abc 有空格时为什么会断开...
因为这时scanf的特性,当它里面使用的是%s说明符时,它只能读取一个“单词”(意思就是,遇到空白字符(换行、空格、制表)就会中断)。如果想读入一行字符(即使中间有空格),就用gets(s);吧

相似回答