Недавно я наткнулся на ошибку в Visual Studio 2008 (по крайней мере, я думаю, что это один).Visual Studio 2008: струнные литералы «?? -», «??», «?? =» corrupt
Когда я пытаюсь создать строки-литералы с двумя вопросительными знаками, за которыми следует другой символ, возникает нечто странное: эти три символа заменяются другим символом.
Примеры:
printf("??-"); --> ~ (hyphen)
printf("??'"); -->^(circumflex)
printf("??="); --> # (hash)
printf("??)"); --> ] (square braket)
printf("??("); --> [ (square braket)
printf("??/"); --> \ (backslash)
printf("??!"); --> | (pipe)
printf("??%"); --> ?? (percent sign disappears)
Кто-нибудь знает причину этой замены?
Не уверен по причине, но 'printf (@" ?? - ");' должен работать. И я знаю, что вы ищете причины, кроме решений. Но просто указываю, что это помогает кому-то. –
Я думаю, вы можете избежать этих замен, используя '\?' Вместо простого '?'. –
Последнее - «нормальное» поведение - для 'printf'' '' '' '' '' '%%'' в строке формата. – molbdnilo