c语言为什么只能输入一次就直接结束程序了?

这里第一次输入后第二次就不能输入了

第一次输完数字后还有一个回车字符留在缓冲区,第二次就直接读到ch了,所以会出现两个回车。可在第二次读取前getchar();吸取留在缓冲区的字符。

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-03-03
您好。很高兴回答您的问题。
对于您这个程序,因为先输入的是双精度实型数据,然后再输入字符型数据。而我们知道的,在输入完一个数据后结束输入的话,是要按回车键或者Tab键,而这两个键都是字符类型,所以系统就会直接读入这个字符作为下一个输入语句的内容。这就是您这边看到像是没有输入内容的情况。建议您以后要么不这样设置输入语句,若是实在需要先输入别的类型再输入字符型的话,直接一次性输入,中间不要间隔。
第2个回答  2021-03-03
你可以在最后一个printf前加一个断点,看看第二个scanf读到了什么?我估计你读到了\r字符,也就说第一次输入的回车换行符

c语言为什么只能输入一次就直接结束程序了?
因为没有使用循环语句,所有程序按上至下执行完就退出,使用循环语句设置退出条件就可以不停输入,列如:include <stdio.h> int main(){ float f;while(1){ printf("Enter a number: ");\/\/ %f 匹配浮点型数据 scanf("%f",&f);printf("Value = %f", f);} return 0;} ...

c语言为什么只能输入一次就直接结束程序了?
第一次输完数字后还有一个回车字符留在缓冲区,第二次就直接读到ch了,所以会出现两个回车。可在第二次读取前getchar();吸取留在缓冲区的字符。

大佬们,(C语言)为什么我输入完字符串后程序直接结束了,明明我K还没输...
之所以调用getchar函数,是因为要处理第一个scanf_n函数未处理但留在输入流中的换行符,否则第二个scanf_n函数直接读取这个换行符,结果是输入一次,程序直接退出。

为什么这个程序只能输入一次啊
有如果你直接输入S123 10 20 30的话,则只会输入一次就会结束:c里面是通过空格来给scanf分配值的,所以输入的时候如果不确定需要输入多少个参数,那么你输入一个,回车一下,程序就会慢慢往下走,直到所有值输入完成:另外关于你想输入一个名字的问题,你是想输入一个字符串吧,比如:Tom,字符和字符...

为什么我编的C语言程序只能用一次呢?意思就是编好以后没有错误_百度...
你好!你的程序可以加上for循环或者white 的循环都可以,采用负数退出的方式 修改后的完整代码,注意后面的注释#include "stdio.h"#include "conio.h"#include <stdlib.h>int main(void){ long fac(int); int n; for(;;) \/\/ 加一个循环{ \/\/ 大括号 printf("please input a...

c语言为什么我的程序运行后输入数后回车就显示停止运行。
scanf("%d\\n",t);应该为 scanf("%d\\n",&t);原来写错了,所以输入的数并没有送入变量t,而是不知道送到哪里了。至于变量t的值是保留的内存中原有值,不一定是多少。如果恰好是0,那么就是您说的现象。

为什么我用c语言编的程序打开运行后按回车键就自动结束了
因为你的程序运行结束了,所以就自动结束了。。如果是c语言的话,你可以在mian函数的return 0 前句加 system("pause"); 让程序停止。。

c语言 为何在输入时还没输完程序就终止了
可能是你在输入的时候没有用&(取字符),我以前编写程序的时候,也是经常出现这个问题,望你在以后的时候多注意细节,如果不是这个原因的话,发来程序我给你看看。

c语言程序,答案没有出来就自动退出,怎么办
scanf语句读入时,输入的最后一个回车符号被getchar()读掉了,所以实际上程序最后是不会等待你输入一个字符再结束的,可以在scanf("%d,%d,%d",&a,&b,&c)语句之后再加入一个getchar(),这样程序就会等待你输入字符了

c语言中 为什么有时候输入.就陷入死循环了???
总的来说就是编程序的人考虑不够周全,如果把所有的情况都考虑进去,让每种情况都能执行下去,就基本上不会出现死循环了。解决办法嘛,第一种,你可以在程序中把用户输入的数据先判断一下是不是0,如果是就报错,不是就继续执行。 第二种,你可以给出其他情况的解决办法, switch 语句不就是...

相似回答
大家正在搜