永发信息网

c语言 gets函数没输入就结束

答案:1  悬赏:0  手机版
解决时间 2021-02-22 23:09
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

void ju_1()
{
}
void ju_2()
{
printf("输入:I am an idiot 即可看见如下类容");
char str[100];
gets(str);
if(str=="I am an idiot")
printf("你还是笨蛋");
else printf("你是笨蛋");
}
void ju_3()
{
}

void fen()
{
int a;
int flag=0;
printf("输入1:正文;2:写;3:后记");
while (1)
{
scanf("%d",&a);
flag++;
if(a==1)
{
ju_1();
break;
}
else if (a==2)
{
ju_2();
break;
}
else if(a==3)
{
ju_3();
break;
}

}
}

void main()
{
char a[100];
fen();
printf("\n");
printf("输入1的话回到选择,输入其他就退出咯\n");
gets(a);



printf("***************全程序完毕***************");

}
问题1. 没啥没输入最后的gets(a)程序就结束了呢?
2. 如果在fen()函数里输入2 进入ju_2函数 但为什么没输入函数中的get(str)就结束了呢?
最佳答案
gets() 以前,假如有过 scanf() 语句,gets() 多半读到前面输入时,剩余在输入流中的 \n 符。
你两个问题,实质上都是这个原因。
你可以用 fflush(stdin); 清扫输入流。
例如:
printf("输入1的话回到选择,输入其他就退出咯\n");
fflush(stdin); gets(a);
其它几个gets()也这样 修改就可以了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一条线段上的五等分点有几个
辉明纺织在什么地方啊,我要过去处理事情
【pour是什么意思】Pourthewater.是什么意思?
ipad忘记密码怎么激活/ipad忘记密码怎么激活
龙腾社区工会工作委员会地址在哪,我要去那里
从常州到上海 七浦路要坐什么车啊?怎么走?
请问,手机储存卡被格式化了就没用了?在线急
一张正方形纸的边长是10厘米,在它的边上剪去
一流瘦身养生会所地址在什么地方,想过去办事
这个是什么植物开黄花 很香 叶子就是这长条
葱籽,韭菜籽对血压有影响吗
银行卡号可以查出什么
3月27日的英语日期的顺读法与倒读法
企业应当采用()对低值易耗品和包装物进行摊销
颉怎么读啊?求解
推荐资讯
这种空调是什么
石家庄到丰宁县需要几个小时
90级炫舞骑士地位如何绵nf精灵骑
福特福克斯换了电池车内自动升窗不能工作,要
婴儿推车怎么安装图解
人出汗和排尿,与植物哪种生命活动具有相同的
拿16万买一辆二手车,值不值
怎么查别人的微信密码
求《花舞大唐春 何家村遗宝精粹》电子书PDF
PSV极品飞车17如何修改键位,用摇杆不好使,
If I make you well, I would like to end up
云和宾馆在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?