【问题标题】:How to output non-terminated char array to stdout如何将非终止字符数组输出到标准输出
【发布时间】:2013-11-16 19:14:49
【问题描述】:

我有一个可以包含 NULL 字符的字符数组。
该数组不是以空值结尾的,但我知道它的长度。

问题
如何将这个精确的数组(包括空字符)和其他(没有尾随 \n)输出到标准输出?不幸的是,我不允许一次输出一个字符。

【问题讨论】:

  • 我需要先让我的图灵机完成,然后我才能回答这个问题。不过。我有确定的长度?
  • 你不能只使用 fwrite 有什么原因吗?

标签: c io output


【解决方案1】:
char buffer[SIZE];

if(fwrite(buffer, 1, SIZE, stdout) != SIZE) {
    perror("fwrite");
}

【讨论】:

    【解决方案2】:

    这应该可以解决问题

    size_t rt = write(STDOUT_FILENO, &yourCharArray, SIZE_OF_YOUR_ARRAY);
    

    其中rt 是实际写入的字节数

    【讨论】:

      【解决方案3】:

      虽然很难找到您是否是 C 新手,但答案很简单。

      C 将 stdout 视为一个文件,这意味着您可以简单地使用 fwrite 来完成此操作。

      fwrite(CHAR_ARRAY, sizeof(char), NR_CHARS, stdout);
      

      【讨论】:

        【解决方案4】:

        给你:

        char arr[SIZE]
        fwrite(arr, sizeof(char), SIZE, stdout)
        

        fwrite 在 stdio.h 中

        【讨论】:

        • 感谢@PaulR。更正了答案。
        • sizeof(char) 是多余的,因为它定义为 1 - 请参阅@Charlie 的回答
        • @PaulR,对,但为了清楚起见。没有运行时开销。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-22
        • 2017-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-01
        相关资源
        最近更新 更多