2015-01-06 6 views
13

%sを使用してC言語で印刷できる最大サイズはどれくらいですか?文字列の最大サイズは%sを使用して印刷できますか?

私はfprintfを使用してファイルにバッファを印刷しようとしていましたが、それは320KB以上になると感じました。 fprintfはファイルに切り捨てられた文字列を書き出していました。 %sに制限はありますか?

+1

と同様に

制限はありませんが、あなたは文字列が有効なC言語の文字列であることを確認する必要があります。いくつかのコードを投稿してください、私たちは問題を見つけるのを助けることができるかもしれません。 –

+1

'printf'の実装では、ポイント文字列を通り、指定された' FILE'ポインタに一度に一つの文字を送り、ヌル文字に出会うまでは想像します。つまり、私はC言語標準が 'printf'の実装方法を指定しているのではないかと思います。 –

答えて

6

printf()には上限があります。それは正常にN char秒を処理します。 Nは、任意の単一の変換により製造することができる文字の数は、少なくとも 4095でなければならない4095

少なくともC11dr§7.21.6.1


[編集あります]

このような大きな出力(320 kB)がある場合は、可能であればではなくfputs(s, stream)を使用することを検討してください。これにはこの4095の制限がありません。 printf/fprintf maximum size according to c99

+3

*これはN charまで正常に処理されました。*これはどういう意味ですか? – ouah

+0

@chux特定のコンパイラの実際の制限についてコメントできますか? GCC? MSVC? – Degustaf

+0

@Degustaf私はGCC、MSVCコンパイラの制限に慣れていません。 – chux

関連する問題