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) *find = '\0'; else while(getchar() != '\n') continue; } return ret_val;}这个函数中的while循环是做什么用的?fgets()函数不是保留‘\n’换行符吗?那strchr()函数不是一定能找的到吗既然如此else中的语句有什么用呢?那while语句是在什么情况下 才会用的到呢?
é£å¦æéå°äºä½ 说第äºç§æ åµï¼å¹¶ä¸å°while循ç¯å»æçè¯ï¼æ¯ä¸æ¯å°±è¯¥ågets()é£æ ·å 为è¾å ¥çå符串è¿é¿å¯¼è´ç¼å²åºæº¢åºå¢ï¼
追çä¸ä¼çï¼è¶
åºnçä¼ç»§ç»å¨ç¼å²ä¸ ä¸ä¼è¢«è¯»åã
å¦æ没æwhileï¼é£ä¹ä¸æ¬¡fgetsçæ¶åä¼è¯»å°å©ä½ç