s_gets()関数のまとめ
1257 ワード
対s_gets()この関数はよく知らないので,振り返るたびに分からないところがある.
fgets()がNULLを返すと、ファイルの最後に読み込むか、読み取りエラーが発生することを示します.s_gets()関数はこのプロセスをスキップした.効果:文字列に改行文字が表示されている場合は、空の文字で置換します.
やはりelse whileのコードが分からないと思って、先に記録しておきましょう.《C Primer Plus》P331-334
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