c语言编程中连续按回车输入数据问题
1 用gets输入每行数据。
2 用puts输出读到的数据。
3 当gets函数返回NULL,表示读入结束,退出程序。
代码:
int main(){ char s[100]; while(gets(s)) puts(s);}
代码发上来,执行环境说清楚,不然没法分析和解决。
编程环境尽量用最新的,如果最新的版本都不能解决的问题,换回旧的,除了会发生更多的问题之外,能不能在当前系统上跑起来都是问题。
只能说如果确实是MSVS的BUG所致,就去用GCC试试吧。
如果需要达到连续输入,连续输出的功能,那么程序中必须增加代码用于保存连续的输入数据,然后再依次换算这些数据,连续输出。比如:将主函数体换成如下代码
int main()
{
int N;
int i;
float *a;
float b;
scanf("%d", &N);
a = (float *)malloc(N, sizeof(float));
for(i = 0; i < N; i++) // 读入
{
scanf("%f", &a[i]);
}
for(i = 0; i < N; i++) // 换算和输出
{
b= 5/9.0*(a[i]-32); // 换算
printf("%.2f\n", b);
}
free(a);
return 0;
}
问题出现在scanf,因为它读到回车就停止,却把回车留在缓冲区,下一次再来时,回车还在,它就继续把回车留着,所以什么数据都没读到就又停了,这是它的设计造成的,可以在循环中用getch()函数把每一次的回车去掉,就可以解决了,比如在printf("%.2f\n",b); 一行后加getch();就可以了
int N,dat;
scanf("%d", &N);
while (N--) {
scanf("%d", &dat);
......
}
用循环来实现多组输入,就可以了。
把输入写入到while循环中
比如while((c=getchar()) != EOF)
{
code。。。
}
N是确定的数值么?要是已知的数值可以用数组存放!如果是未知的数值那就要用链表来解决了!
c语言编程中连续按回车输入数据问题
楼主的程序中的while循环语句完成的功能是从标准输入中逐一读入内容,再输出,因此,“每次只能输入一个数据,然后电脑给出一个数据,不能连续输入”。如果需要达到连续输入,连续输出的功能,那么程序中必须增加代码用于保存连续的输入数据,然后再依次换算这些数据,连续输出。比如:将主函数体换成如下代码 ...
c语言如何让字符一直输入直到回车
全部的代码如下图所示。将源码保存到t.c文件,通过gcc 来进行编译。 gcc -o t t.c 编译后会生成一个名称为t的可执行文件,执行如下命令即可执行。 .\/t 为了方便,我直接用;号将这两条命令连接在了一起,执行效果如下图所示。一直在输入,直到按一下回车键,即可终止输出并输出所以输入的内容。
...输入,现在一个每次输出结果后按回车都会结束程序,怎么样实现不会结束...
把输入放到循环中。只要循环成立,将一直重复输入过程。例:循环读入10个整数到数组int a[10]中:int a[10];for(int i=0;i<10;i++) scanf("%d",&a[i]); \/\/循环读入10个数并依次存放到数组a中
c语言的关于文件的程序,为何连按两次回车也不能结束输入
大致问题在scanf里,%d 和 %s 之间应该没有空格才是,如果有空格,那输入的时候也要遵循格式,输上空格,所以两次回车不会结束,最好去掉空格,防止出错
C语言问题:输入一个数,多次回车没反应,要再次输入才有反应,为什么?而且...
"); scanf("%lf",&a);\/\/去掉\\n while(a>=1000||a<0) \/\/给你加了个循环 { printf("输入有误,请重新输入"); scanf("%lf",&a);\/\/少& } b=sqrt(a); printf("该数的平方根为:%.0lf",b); return 0;} ...
c语言中如何实现输入回车跳出循环
因为打印出1后,进入while判断语句,你需要从键盘输入一个值,并且这个值不是回车,才能继续输出 如果需要一直打印,直到你按下回车,那么这需要用到一个函数:kbhit(),这个函数用于“当敲击键盘时执行”,可以用!kbhit()为“当没有敲击键盘时执行”...
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) ...
C语言的问题 为什么这成了死循环?
在C语言中,scanf()函数用于接收用户输入的数据,其在遇到以下情况时会停止读取一个数据:(注意,这并不会结束整个scanf函数的执行,而是在每个数据域均有数据,并按回车键确认后停止)。具体来说,scanf会结束读取数据的条件包括:(1)遇到空格、回车或跳格键;(2)宽度结束,即指定了读取宽度,达到指定...
c语言怎么解决scanf()把回车作为输入值的问题,请仔细看我的代码_百度知...
1、对于scanf("%lf%c%lf",&number_1,&operition,&number_2);,注意格式串中没有(也不能有)空格,输入响应时,要连续输入三个量,中间也不能有空格,否则,必然会造成误读。键入三个量后,接下来的回车键表示本次输入已经结束,回车键不会被认为是数值的一部分,而会被“吃掉”,输入缓冲区中...
C语言关于函数的题目,怎样敲了回车之后继续输入
r){return PI * r * r;}double getC(double r){return 2.0 * PI * r; }int main(){char ch;double r;do{scanf("%lf", &r);printf("%.2lf,%.2lf\\n", getS(r), getC(r));getchar();\/\/for enterscanf("%c", &ch);}while( ch == 'Y' );return 0;} ...