C语言printf打印链表内容时如何设置格式实现列对齐效果?
解决方案
直接用printf内置的宽度修饰符即可实现列对齐,左对齐场景下在宽度数值前加-符号即可,修改后的代码如下:
FrameNode* p = head; // 表头和内容的列宽度要对应,数值可以根据你实际内容长度按需调整 printf("%-20s%-15s%-30s\n", "Name", "Duration", "Path"); // 额外提示:原来的while(p->next)会漏掉链表最后一个节点的内容,建议改成判断p不为空 while (p != NULL) { printf("%-20s%-15d%-30s\n", p->frame->name, p->frame->duration, p->frame->path); p = p->next; }
参数说明:
%-20s:表示输出字符串左对齐,固定占用20个字符宽度,内容不足20位时自动在末尾补空格%-15d:表示输出整数左对齐,固定占用15个字符宽度,内容不足15位时自动在末尾补空格- 你可以根据自己的实际内容长度调整宽度数值,比如文件名普遍较长就把对应列的20改成更大的数值即可
内容的提问来源于stack exchange,提问作者lior
相关产品推荐
相关产品推荐

