Вы должны использовать одну обратную косую черту вместо двух.Попробуйте следующее утверждение:
sprintf(tmpstr,"VSET1:%ld.%3.3d\x0AVSET2:%ld.%3.3d",mv/1000, AbsVal((int)mv%1000), mv / 1000, AbsVal((int)mv % 1000));
Однако то, что вы сделали в своей программе, напечатает строку "\x0A"
, а не символ ASCII (0xAA
(перевод строки)).
В C все escape-последовательности состоят из двух или более символов, первым из которых является обратный слеш \ (называемый «Escape-символ»);остальные символы определяют интерпретацию escape-последовательности.
C по умолчанию обрабатывает обратную косую черту как escape-последовательности.Однако в вашей программе вы указали компилятору C не использовать обратную косую черту в качестве escape-последовательности, добавив дополнительную обратную косую черту в вашу строку.