0

我正在阅读一段 C 堆排序代码并遇到这个:

 do{
    printf("\n\t\t1:INSERT\n");
    printf("\n\t\t2:SEARCH\n");
    printf("\n\t\t3:DELETE\n");
    printf("\n\t\t1:DISPLAY\n");
    printf("Enter your choise\n");
    scanf("%d",&choise);
    switch(choise)
    {
        case 1: printf("Enter value to insert\n");
                scanf("%d",&val);
                last=insert(root,val);
                break;
        case 2:printf("Enter value for search \n");
                scanf("%d",&val);
                search(root,val);
                break;
        case 3:delete(root);
                delete(last);
                break;
        case 4:printf("\n\tHEAP\n");
                display(root);
                break;
        default : printf("INVALID choise ... can't you see properly?\n");

    }

任何人都知道什么\t1\t2printfs中以及它们是如何工作的?我尝试了谷歌,但没有得到任何有用的信息。谢谢你。

4

5 回答 5

6

\t表示制表符。与12无关;它们只是文字12.

于 2011-12-24T19:18:53.950 回答
1

您不会\t在任何printf文档中找到任何提及,因为它与printf. 它是字符串文字语法的一部分,类似于\n它之前的语法。 \n表示换行符;\t表示制表符。 printf甚至从未看到'\'在编译时被替换的字符;它只看到换行符和制表符,它像任何其他不属于任何%...序列的普通字符一样对待它们。(可能对这些特定字符进行了一些特殊处理,但这是由 调用的低级例程完成的printf。)

And\t1表示一个制表符后跟一个数字1

(顺便说一句:类 Unix 系统有一个printf command,在 shell 提示符下使用,其行为类似于 Cprintf函数。它\自己处理序列。)

于 2011-12-24T20:11:48.517 回答
0

说明符只是\t,它是制表符。这些数字是印刷文字的一部分。

于 2011-12-24T19:19:28.490 回答
0

\t仅用于打印水平制表符。这些数字将按原样打印,而不是\t. IE:

printf("\n\t\t1:INSERT\n");
printf("\n\t\t2:SEARCH\n");
printf("\n\t\t3:DELETE\n");
printf("\n\t\t1:DISPLAY\n");
printf("Enter your choise\n");

将打印如下内容:

    1:INSERT

    2:SEARCH

    3:DELETE

    1:DISPLAY
Enter your choise
于 2011-12-24T19:19:57.287 回答
0

\t是标签。它打印制表符,然后打印1. 就像在做/n1。这意味着留下一行然后打印1

\t  -----> I am a tab character that prints spaces.

1   -----> I am a number.

我们俩都不是一个角色。

\t1 -----> Print tab character and then print 1. 

\t2 -----> Print tab character and then print 2. 

现在明白了吗?

于 2011-12-25T02:03:20.487 回答