戻り値が -1 になる原因となったエラーの種類を特定する方法は?
元:
a = sscanf(ptr, "%s",output);
printf("%d",a);
出力:
-1
ドキュメントから:
...and errno shall be set to indicate the error
.
perror()
エラーの内容を確認するために使用します。通常、errno は、sscanf には適用されない読み取りエラーがある場合にのみ適用されます。一致の失敗または変換がない場合は、単純に -1 が返されます。あなたの fmt 文字列は単に '%s' であるため、-1 の戻り値を取得する唯一の理由は、ptr が指す文字列に空白のみが含まれている場合です。
ptr
の内容を確認し、output
正しく宣言されていることを確認することで、エラーを特定します。典型的なエラーはptr
またはです。output
NULL
からこれ以上診断情報を取得することはありませんsscanf
。