c - 如何在 C 中操作一般输出(不是数字或变量)?

标签 c setw

好吧,我正在用 C 语言做这个作业,我想知道 C 语言是否有像 c++ 中的 setw 这样的输出操纵器?我知道如何操纵数字和其他东西,但我不知道如何操纵一般输出。例如

我想输出宽度为5的“process”和“count”:

printf("Process") 和 printf("count"),它们之间的宽度为 5。我怎样才能做到这一点?

最佳答案

我不确定 setw(n) 是否像您想象的那样工作。如果你编译并运行这个C++代码。 。 .

#include <sstream>
#include <iostream>
#include <iomanip>

int main()
{
    std::cout << "Process"
              << std::setw(5) << "count" << '\n';
}

然后你会得到这个输出。

Processcount

Use setw(10) instead, and you'll get this output.

Process     count

In C, printf() lets you specify the column width.

/* File: code/c/test.c */
#include <stdio.h>

int main(void) {
  printf("%s", "Process");
  printf("%10s\n", "count");

  return 0;
}

这将首先打印“Process”,然后在 10 个字符宽的字段中打印“count”。字符串“count”本身有五个字符。这会在两个字符串之间留下五个空格。

$ gcc -Wall code/c/test.c
$ ./a.out
Process     count

嵌入像这样的制表符 printf("Process\tcount\n"); 不会在两个单词之间留下五个空格。

Process count

关于c - 如何在 C 中操作一般输出(不是数字或变量)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529732/

相关文章:

c++ - setw 在一个函数中返回一个 ostream

C++ setw 不对齐列

c++ - 在 C++ 中使用 setw 和 setprecision 时如何显示带有值的 $ 符号

c - 在 Windows 上,对于 UDP 套接字,open() 失败需要哪些条件?

c - 如何使用for循环更改c中数组的每个第二个元素?

将值转换为二进制值并将它们存储在数组中

c++ - std::stringstream 的默认 `fill character` 是什么?

c++ - 我如何使用 iomanip 的 setw、setfill 和左/右? Setfill 不会停止其输出

c - 在 C 中获取函数指针的这些方法有区别吗?

c - 如何使用 Clang 的 AST?