c语言vs2019\t制表符对齐问题,要怎么样操作才能让第二行的字体对齐呢??


void PrintList(Node* head) 
{
    Node* cur = head->next;
    printf_s("医院名称\t\t\t级别\t地址\t类型\t医生名字\n");
    while(cur)
    {
        printf_s("%-12s\t%s\t%s\t%s\t%s\n", cur->data.name, cur->data.level, cur->data.address, cur->data.type,cur->data.peo);
        cur = cur->next;
    }
    printf("\n");
}

img

你可以使用更长的制表符或者使用空格来对齐第二行。例如,你可以尝试将第一行中的制表符长度增加到三个,即"\t\t\t",如下所示:

void PrintList(Node* head) 
{
    Node* cur = head->next;
    printf_s("医院名称\t\t\t级别\t地址\t类型\t医生名字\n");
    while(cur)
    {
        printf_s("%-12s\t%s\t%s\t%s\t%s\n", cur->data.name, cur->data.level, cur->data.address, cur->data.type,cur->data.peo);
        cur = cur->next;
    }
    printf("\n");
}
或者你可以使用空格来对齐第二行,例如:
void PrintList(Node* head) 
{
    Node* cur = head->next;
    printf_s("医院名称                          级别  地址            类型  医生名字\n");
    while(cur)
    {
        printf_s("%-12s                  %s    %-15s  %s  %s\n", cur->data.name, cur->data.level, cur->data.address, cur->data.type,cur->data.peo);
        cur = cur->next;
    }
    printf("\n");
}
可以根据实际需要进行调整,以便使第二行对齐。

表格头也要格式化输出一下,看你自己调整,我这里只格式化了医院名称字段, 参考:

 
void PrintList(Node* head) 
{
    Node* cur = head->next;
    printf_s("%-30s\t级别\t地址\t类型\t医生名字\n", "医院名称");
    while(cur)
    {
        printf_s("%-30s\t%s\t%s\t%s\t%s\n", cur->data.name, cur->data.level, cur->data.address, cur->data.type,cur->data.peo);
        cur = cur->next;
    }
    printf("\n");
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/243632
  • 你也可以参考下这篇文章:求助 VS2019报错问题怎么解决?
  • 你还可以看下c语言参考手册中的 c语言-对象与对齐
  • 除此之外, 这篇博客: C语言18个经典程序VS2019 源码与展示中的 10、 数组排序程序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    编写一个 void sort(int *x,int n)实现将 x 数组中的 n 个数据从大到小 排序。 n 及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件 p9_1.out 中

    #include<stdio.h>
    #include<stdlib.h>
    
    void BubbleSort(int* x, int n)//我这里用的冒泡排序
    {
    	int i,j,tmp;
    	for (j = 0; j < n; j++)
    	{
    		for (i = 0; i < n-j; i++)
    		{
    			if (x[i] < x[i + 1])
    			{	//交换数据
    				tmp = x[i];
    				x[i] = x[i + 1];
    				x[i + 1] = tmp;
    			}
    		}
    	}	
    }
    
    int main(void)
    {
    	int i, a[10];
    	printf("请输入10个数字:");
    	for (i = 0; i < 10; i++)
    		scanf("%d", &a[i]);	
    	BubbleSort(a, 10);
    
    	FILE* fp;
    	fp = fopen("p9_1.out", "w");
    	for (i = 0; i < 10; i++)
    	{
    		printf("%d ", a[i]);
    		fprintf(fp, "%d ", a[i]);
    	}
    	fclose(fp);
    	return 0;
    }
    

    在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^