-2
scanf
の次の2つの呼び出しの違いは何ですか?また、どちらを使用する必要がありますか?scanfの "%[^ n]"と "%s"の違いは何ですか?
scanf(" %[^\n]", word);
scanf(" %s", word);
scanf
の次の2つの呼び出しの違いは何ですか?また、どちらを使用する必要がありますか?scanfの "%[^ n]"と "%s"の違いは何ですか?
scanf(" %[^\n]", word);
scanf(" %s", word);
%[^\n]
\n
またはEOFにヒットするまでの文字列を読み取るためです。文字列に空白を含めることができます。
%s
は、空白またはEOFにヒットするまで文字列を読み取ります。
このように、バッファオーバーランを避けるために読むために最大の長さを指定した方がよい:
char word[100];
scanf("%99s", word); /* don't forget to reserve a space for terminating null-character */
あなたがチームメイトありがとう! :D –