永发信息网

C语言gets为什么不执行

答案:7  悬赏:50  手机版
解决时间 2021-02-25 16:25
C语言gets为什么不执行
最佳答案
gets函数是以换行符或者EOF为结束标志,如果用空格或者跳格,gets函数会继续等待用户输入。

1、gets函数:
原型:char * gets(char * buffer);
功能:从stdin流中读取字符串,直至读到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为 空字符,并以此结束字符串;
说明:当使用unicode宽字符文本时,请使用宽字符版本函数 _getws()。gets函数可以无限读取,不会判断上限,所以使用时应确保buffer的空间足够大,以便在执行读取操作时不发生溢出。gets函数在C11标准中被移除,改为更加安全的gets_s函数;
头文件:stdio.h;
返回值:若读入成功,返回与参数buffer相同的字符指针。若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程:

#include 
int main(){
    char buffer[5];//定义缓存字符数组buffer
    gets(buffer);//用gets函数从stdin流中读入字符串,因为buffer长度是5,输入不能超过4个字符
    printf("%s",buffer);//在stdout流中输出读入的字符串
    return 0;
}
全部回答
能详细点么?160564700
源代码呢????
gets不需要循环语句循环语句用在最后的printf就行
楼主不给分,大晚上的 估计不会有人回答你。。。
执行了,它把执行scanf("%d",&n);时遗留在缓冲区中的回车符收走了;gets函数以回车符为结束命令,所以它以为你已经输入完毕了。解决办法很多,但正宗的是在gets前面加一句fflush(stdin);把缓冲区清空。
gets()用于读入整行字符串,以回车结尾。因为你在scanf("%d",&n);时已经读入一个回车,所以第一个a为空字符。(输入的数字赋值给n,然后回车给a了)。解决办法是scanf("%d",&n);后加一句
getchar();
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
设置好桌面的分辨率重启后它又自动变回原来的
这种学校毕业后文凭应该是哪的?
铁血战士的来源介绍
和合康源健康中心在哪里啊,我有事要去这个地
360影视大全能传视频么
错爱之不悔情书的百度云盘资源
中国光大银行24小时自助银行地址有知道的么?
外汇平盘是什么意思
下列关于减免税的说法,表述错误的是(  )
Atheros AR5007EG 无线网卡的奇怪问题
求一份完整土建工程预算实例,包含详细计算过
宏伟发型设计地址有知道的么?有点事想过去
CATIA输出STL文件的精度问题?
《建设工程监理范围和规模标准规定》中规定的
南京秦淮区有哪些私立小学?
推荐资讯
我男友女同事约他去吃饭,他是拒绝的,女的不
下图是表示人体某些信息传递机制的模式图,图
带火字为部首的字有哪些?高手指点下
牡丹江有一个能骑马的地方,还有蒙古包,叫什
紫檀手串,金丝楠木手串,黄花梨手串都是沉水
飞翔电脑编织厂怎么去啊,有知道地址的么
偏旁是三点水的字
幸福小吃这个地址在什么地方,我要处理点事
witness to doing有这个结构吗
中国太平人寿保险虞城支公司地址在哪,我要去
空调机有蝙蝠如何驱赶
WD800G型格兰仕微波炉的晶振是多少?(货号:G80
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?