2010-12-20 25 views
2

hereCRT 9.0 vsprintf_s參數驗證在長格式字符串

與 _s和_p後綴的這些功能的版本更安全的版本。這些版本驗證 格式字符串,如果格式字符串不是 格式正確(例如,如果使用無效的 格式字符),將生成 異常。

我剛剛發現如果格式化字符串大於輸出緩衝區大小,則認爲它格式不正確。有誰知道文檔確認所有* _s打印功能?

感謝

回答

1

貌似默認行爲是拋出CRT誤差如果超過輸出緩衝區的大小,不論其來源。如果超出輸出緩衝區大小,我預計輸出將被自動截斷。因此,如果格式字符串已經太長,就沒有必要填寫格式字符串。

+0

使用'vsnprintf_s'而不是'count = _TRUNCATE'似乎可以正常工作。 – wimh 2015-10-22 08:08:02