関数を使用fgets()
して、固定サイズの構造体に文字列を格納しています。
if(fgets(auth_data->user_id, USR_SIZE, stdin) == NULL)
EXIT_ON_ERROR_("Error on fgets function\n");
fflush(stdin);
USR_SIZE -1
以上のサイズの受信文字列はすべてカットされていることがわかります。入力文字列が正確にそのサイズ(USR_SIZE -1
プラス'\0'
文字)であることを知る必要があります。
strlen
この目的のために、文字列に長さがあるかどうかを確認するためにそれらを呼び出すことができます< USR_SIZE -1
。しかし、元の文字列が によって切断されたかどうかを確認するにはどうすればよいですかfgets
。どちらの場合も、文字列が正しい形式ではないことが最初にわかります。
さらにfflush(stdin)
、入力ストリームをクリアするために本当に必要ですか?