質問: 以下のプログラム中の`sprintf`はどのような働きでしょうか? ``` if(p >= 10000 ){ sprintf(str,"D:\\○○研_生産情報特別実験_中山_引継ぎ\\System\\Final\\講義中の教師の動作の推定と記録を行うシステム\\OpenCV-Sample001\\講義画像\\cap%05d.bmp",p); }else{ sprintf(str,"D:\\○○研_生産情報特別実験_中山_引継ぎ\\System\\Final\\講義中の教師の動作の推定と記録を行うシステム\\OpenCV-Sample001\\講義画像\\cap%04d.bmp",p); } ```
回答: ([opencv](/questions/tagged/opencv "'opencv' のタグが付いた質問を表示") かつ [visual-studio](/questions/tagged/visual-studio "'visual-studio' のタグが付いた質問を表示") だと言語は [c](/questions/tagged/c "'c' のタグが付いた質問を表示") または [c++](/questions/tagged/c%2b%2b "'c++' のタグが付いた質問を表示") とみなせそう) [c](/questions/tagged/c "'c' のタグが付いた質問を表示") の `sprintf` は `char` の配列に書式展開した文字列を出力する関数です。 (機械翻訳) (こっちのほうが読みやすいはず) 提示コード中の `str` は `char str[_MAX_PATH];` のように定義されている `char` の配列であるはずです。 `sprintf` はそこに `D:\○○研_生産情報特別実験_中山_引継ぎ\System\Final\講義中の教師の動作の推定と記録を行うシステム\OpenCV-Sample001\講義画像\cap12345.bmp` のように文字列を書式展開して(この例では `%d` が対応する数値を表記する複数文字に展開される)保存します。 ソースコード中のバックスラッシュはコンパイル時にエスケープ展開されることに注意。