今天在学习c的时候突然对一个常用的函数产生了疑问,越想越糊涂,请大佬指教,谢谢
#include <stdio.h>
#include <string.h>
char *s_gets(char *st,int n)
{
char *ret_val;
char *find;
ret_val=fgets(st,n,stdin);
if(ret_val)
{
find=strchr(st,'\n'); //查找换行符
if(find) //如果地址不是NULL
*find='\0'; //在此处用空字符取代换行符
else
while(getchar()!='\n') //疑问点
continue;
}
return ret_val;
}
以上是c prime plus中的一段代码。
我的理解是fgets成功读取后自动添加换行符,那find就一定不是NULL,那么else后面的代码什么时候会执行?有什么作用?