お久しぶりです。お世話になっています。
表題の件ですが、printfDx()に"?"の文字が含まれる場合に"?"だけが表示されません。
"?"はprintfの書式文字列では?と思いましたがそうではないようで、
実際Wandboxなどで(C関数の)printf("1?2");などとすると?は正常に表示されます。
再現コードを貼り付けます。
//----------------------------------------------------------------
#include "DxLib.h"
namespace {
constexpr int windowWidth = 640;
constexpr int windowHeight = 480;
}
bool dxlibInit() {
ChangeWindowMode(TRUE); //ウインドウモードにする
SetWindowSize(windowWidth, windowHeight);
// DXライブラリ初期化処理
if (DxLib_Init() == -1) {
return false;
}
SetDrawScreen(DX_SCREEN_BACK); //描画先を裏画面に設定
return true;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
if (!dxlibInit()) {
// エラーが起きたら直ちに終了
return 1;
}
SetMouseDispFlag(FALSE);
printfDx("a?c?der"); //"?"が表示されない
printfDx("c??20"); //"?"が表示されない
DrawString(100, 100, "あいう?えお", GetColor(100, 100, 100)); //正常に表示される
ScreenFlip();
WaitKey();
DxLib_End();
return 0;
}
//----------------------------------------------------------------
よろしくお願いいたします。
環境:MSVC Community 2019最新版(v16.1.6)
c++17(よってトライグラフは廃止されている)/32bit/マルチバイト文字
追記:windows版です