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