文字列からいくつかの値を取得するためにCでsscanfを使用しようとしています。ただし、文字列に必要以上の値がある場合は、エラーをスローするために必要です。すなわち。整数が必要な場合、「2」は問題ないはずですが、「25」はクラッシュするはずです。
sscanfの戻り値を次のように使用します。
if (sscanf(mystring, "%d %*s", &num) == 1)
文字列が長くても1が返されるため、機能しません。私がすることができます:
char tmpString [100];
if (sscanf(mystring, "%d %s", &num, tmpString) == 1)
これは問題なく動作しますが、特に良いとは言えません。別の方法はありますか?割り当て抑制を使用しても、必要な戻り値を取得できますか?
編集これは私が使用したコードです:
char c; // This is a global variable, just gets used over and over.
sscanf(mystring, "%d%c", &num, &c);
if (c == '\n') {