Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使函数只打印“打印”^@&引用;用一个| cat-e_C - Fatal编程技术网

如何使函数只打印“打印”^@&引用;用一个| cat-e

如何使函数只打印“打印”^@&引用;用一个| cat-e,c,C,我正在重新编码printf,我从printf得到的行为与真实的printf略有不同,因为我使用字符串(malloc),而真实的printf使用写函数 执行以下操作时: /a.out | e类 其中: #包括 int main() { printf(%c,0); 返回(0); } 它被写在终端中 而我的函数在没有管道(cat-e)的情况下也会做出相同的反应,但在管道上仍然不会打印任何内容。你能告诉我,当在函数上使用cat-e时,如何让函数写入“^@”吗?你正在打印字符ascii值0。它是一个空值

我正在重新编码printf,我从printf得到的行为与真实的printf略有不同,因为我使用字符串(malloc),而真实的printf使用写函数

执行以下操作时:

/a.out | e类

其中:

#包括
int main()
{
printf(%c,0);
返回(0);
}
它被写在终端中


而我的函数在没有管道(cat-e)的情况下也会做出相同的反应,但在管道上仍然不会打印任何内容。你能告诉我,当在函数上使用cat-e时,如何让函数写入“^@”吗?

你正在打印字符ascii值
0
。它是一个空值。当您仅使用
/a.out | cat
/a.out
执行时,它不会打印任何内容。因为默认情况下,cat不会打印不可打印的字符。但是当您与
cat-e
一起使用时,它用于打印不可打印的字符

 printf("%c",0);
从cat的手册页中

 -e     equivalent to -vE
 -E, --show-ends
          display $ at end of each line
 -v, --show-nonprinting
          use ^ and M- notation, except for LFD and TAB

学习并提供一个。您的问题是:如何使用函数在C代码中实现
cat-e
的行为?使用printf函数,当我使用相同的输入(即%C和0)执行“/a.out|cat-e”时,它不会打印“^@”。我想让它在使用管道时打印出来——我很难理解你想说什么。也许,您可以使用输入和预期输出更新您的问题,以及您是想使用
cat
,还是只在C代码中模拟它。@l3x我想要一个C函数,当使用cat-e时,它只在终端中打印^@所以我的问题可能是:当我执行以下命令时,如何打印不可打印的字符^@第一行我的printf函数:./a.out| cat-e,它不打印^@。我想不使用write(1,“,1)打印它,但可以使用一些东西malloc@zakk8889这就是为什么它们被称为“不可打印”:字符的字体中没有相应的字形,在终端/etc中打印时,它们通常被简单地删除/忽略。对于不可打印的字符,充其量只能显示一个占位符字符。一些终端支持该功能,但大多数终端不支持。将输出重定向到该文件并在hex编辑器中打开该文件,或重定向到hexdump/hd/od tools。@Dummy00001:无图示符不会使代码不可打印。许多字体并非所有字符代码都有字形。非打印件是它们自己的阴极,用于控制终端。好的,我理解。谢谢你们。我的问题听起来很愚蠢,但我对我的理解很有用!
 -e     equivalent to -vE
 -E, --show-ends
          display $ at end of each line
 -v, --show-nonprinting
          use ^ and M- notation, except for LFD and TAB