sscanf(line, "%d %64[^\n", &seconds, message);
%64[^は最大 64 文字という意味ですか? GNU C Compiler で動作する必要がありますか?
sscanf(line, "%d %64[^\n", &seconds, message);
%64[^は最大 64 文字という意味ですか? GNU C Compiler で動作する必要がありますか?
これは、「最大 64 文字を読み取るか、改行に達したら停止するか、どちらか先に来る方」を意味します。標準で指定されているため、すべての標準ライブラリがサポートする必要があります。
C11 7.21.6.2
[
期待される一連の文字 (scanset) から空でない一連の文字に一致します。[...] 変換指定子には、対応する右括弧 (]) までの、フォーマット文字列内の後続のすべての文字が含まれます。左括弧の後の文字がサーカムフレックス (^) でない限り、括弧の間の文字 (スキャンリスト) がスキャンセットを構成します。
コメントに記載されているように]
、スキャンリストを区切るにはおそらくマッチングが必要です。指定子は必要ありませんs
。