【问题标题】:C printf string specifier \t1?C printf 字符串说明符 \t1?
【发布时间】:2011-12-24 19:18:08
【问题描述】:

我在看一段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");

    }

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

【问题讨论】:

    标签: c string format-specifiers


    【解决方案1】:

    \t 表示一个制表符。 12 与它无关;它们只是字面意义上的12

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          \t 仅用于打印水平制表符。这些数字将按原样打印,而不是\t 的一部分。即:

          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
          

          【讨论】:

            【解决方案5】:

            \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. 
            

            现在得到吗?

            【讨论】:

              猜你喜欢
              • 2013-10-09
              • 1970-01-01
              • 2011-11-18
              • 2012-03-14
              • 1970-01-01
              • 2017-08-04
              • 2011-05-23
              • 2014-01-07
              • 1970-01-01
              相关资源
              最近更新 更多