2011-12-24 5 views
0

Я читаю кусок кода С сортировочного кучи и сталкиваются с этим:C спецификатор строки printf t1?

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 и \t2 в printf с и как они работают? Я попробовал Google, но не получил никакой полезной информации. Спасибо.

ответ

6

\t обозначает символ табуляции. 1 и 2 не имеют никакого отношения к этому; они буквально 1 и 2.

0

Специфика только \t, который является символом табуляции. Цифры являются частью напечатанных литералов.

0

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

Вы не найдете ни одного упоминания о \t в любой printf документации, поскольку она не имеет ничего общего с printf. Это часть синтаксиса строкового литерала, аналогичного предшествующему \n. \n обозначает символ новой строки; \t обозначает символ табуляции. printf никогда не видит символов '\', которые заменяются во время компиляции; он просто видит символы новой строки и табуляции, которые он обрабатывает, как и любые другие обычные символы, которые не являются частью какой-либо последовательности %.... (Там может быть какая-то особая обработка этих конкретных персонажей, но это делается с помощью процедур низшего уровня, которые называются по printf.)

И \t1 обозначает символ табуляции, за которым следует цифра 1.

(в стороне: Unix-подобные системы имеет printfcommand, используемые из командной строки, которая ведет себя аналогично функции C printf Это делает обрабатывать \ сама последовательность..)

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. 

Получите это сейчас?

Смежные вопросы