c - 需要深入了解 printf 功能

标签 c printf

我尝试了下面提到的代码,令我惊讶的是得到了一些相关的输出。

void main( )
  { char s[]="USMComputer";
     printf("%*.*s",-5, 4, s+3);
  }

这会输出Comp。有人可以解释一下吗?

最佳答案

如果您对 awk 了解一点点,那就有意义了。无论如何,这里发生的是 * 被您给出的数字(分别为 -5 和 4)替换,这意味着

printf("%*.*s",-5, 4, s+3);

将更改为

printf("%-5.4s", s+3);

关于c - 需要深入了解 printf 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30647774/

相关文章:

c - 从文件流读取值到数组 (C)

c - 为什么 sprintf 中的第一个参数不能是 C 中的 char 指针

go - Go 上的十进制到大写十六进制字符串

c - 简单 printf() 的奇怪垃圾输出

c - 我在代码中遇到问题,应该找到字符串中子字符串的出现次数

c - 流程管理数据结构和流程控制

c - poll() 什么时候返回 POLLERR

c - 在预处理器指令中包装 C printf() 调用

c - 如何控制 double 变量小数点字符后出现的位数?

c++ - scanf - 程序等待另一个类似的?