Microsoft Visual Studio (2012)のデバッガ経由で、コマンドライン引数に%
を含む文字列を指定したとき、プログラム側に意図通りの文字列データが渡されない。
dumparg.c
# include <stdio.h>
int main(int argc, char* argv[])
{
printf("%s", argv[1]);
}
指定した文字列:foo-%05d.ext
渡される文字列:"foo-\05d.ext" ("\05"は制御文字)
プログラムに意図通り文字%
を与えるには、VisualStudioデバッガ側/コマンドライン引数上では%25
を指定すること。
指定した文字列:foo-%2505d.ext
渡される文字列:"foo-%05d.ext"