s_gets()関数のまとめ

1257 ワード

対s_gets()この関数はよく知らないので,振り返るたびに分からないところがある.
char *s_gets(char *st,int n){
	char *ret_val;
	int i = 0;
	
	ret_val = fgets(st,n,stdin);
	if(ret_val){// *ret_val!='\0'  , ret_val      ,ret_val   0,       ,while    
            while(st[i] != '
' && st[i] != '\0') i++; if(st[i] == '
') st[i] = '\0'; else // '\0', ,
。                 // , ,     while(getchar() != '
') continue; } return ret_val; }

fgets()がNULLを返すと、ファイルの最後に読み込むか、読み取りエラーが発生することを示します.s_gets()関数はこのプロセスをスキップした.効果:文字列に改行文字が表示されている場合は、空の文字で置換します.
char * s_gets(char * st, int n)
{
  char * ret_val;
  char * find;

  ret_val=fgets(st,n,stdin);
  if(ret_val)
  {
     find=strchr(st,'
'); // if(find) // NULL, *find='\0'; else // while(getchar()!='
') // 。getchar()get ? get , ?(10.12) continue; } return ret_val; }

やはりelse whileのコードが分からないと思って、先に記録しておきましょう.《C Primer Plus》P331-334