正如问题已经告诉的那样:
我想知道,是否有一个 ASCII 字符会被 C in/out 处理而没有任何影响?
作为我写的例子(哪里Y
代表这个角色)
printf ("abcYdYfg");
输出应该是:
abcdfg
而且这个控制字符也不会对任何标准的内存或字符串操作函数产生影响。
是否有任何 ASCII 字符符合此要求?
您可以尝试使用0x1d
, 0x1e
, 0x1f
,它们是组、记录和单位分隔符。它们旨在用于您正在尝试做的事情。见ASCII,历史
话虽如此,我认为您不想以这种方式使用特殊字符,而是使用memmove(3)正如@R在对您的问题的评论中建议的那样。
答案在很大程度上取决于您所说的“无效”是什么意思。就写入文件/流/设备的内容而言,没有这样的事情。每个写入的字符都会使文件位置前进一个字节/字符或在行上传输一个字符。但是,如果您正在谈论写入交互式显示设备(终端),则有些字符不会移动光标。最明显的例子是 NUL 字符 ( '\0'
)。您不能将它嵌入到 C 字符串中(因为它会终止字符串),但您可以使用或通过or等使用%c
参数 0打印它。printf
putc
fwrite