2016-09-22 3 views
0

Я пытаюсь напечатать шаблон чисел. Попробуйте запустить этот код с входом 20, вы увидите, что области вкладок находятся не в том месте, они не следуют порядку. Я знаю, что области табуляции переходят к следующему заголовку, но есть ли способ избежать этого?Почему этот код C не работает?

#include <stdio.h> 

int main() 
{ 
    int i, n, count = 0; 
    scanf("%d", &n); 
    for(i = 1; i <= n; i++) 
    { 
     printf("%dnumber\t", i); 
     count++; 
     if(count == 4) 
     { 
      count = 0; 
      printf("\n"); 
     } 
    } 
    return 0; 
} 

Примечание: Есть ли способ сделать это с помощью только вкладки пространств вместо обычного белого пространства (то есть, «\ т» только.).

Вот результат, который я получаю.

enter image description here

Но то, что я хочу это

enter image description here

+2

Пожалуйста, покажите ожидаемый результат, и неисправный выход, в вопрос. –

+1

__tab пробелы все в неправильном месте_ Я не знаю, где находится подходящее место. Они не следуют порядку. - Может быть, порядок рыцарей-тамплиеров? –

+0

Если вы удалите «число» из печати, они могут выглядеть в «порядке» – hashdefine

ответ

1

Почему нет:

#include <stdio.h> 

int main(void) 
{ 
    int i = 0; 
    int n = 0; 

    scanf("%d", &n); 

    for(i = 1; i <= n; i++) 
    { 
     printf("%02dnumber\t", i); 

     if(i % 4 == 0) 
      printf("\n"); 
    } 

    return 0; 
} 

Выход:

16 
01number 02number 03number 04number  
05number 06number 07number 08number  
09number 10number 11number 12number  
13number 14number 15number 16number  

Надеюсь, это поможет!

4

Здесь есть несколько различных проблем.

Но, похоже, ваш главный вопрос: «gee: вкладки не выстраиваются так, как я ожидаю».

РЕКОМЕНДУЕМАЯ АЛЬТЕРНАТИВА:

Рассмотрите возможность использования "длины поля спецификаторов" в printf():

http://www.cplusplus.com/reference/cstdio/printf/

Пример:

printf ("%-20s", mystring); // Will always be exactly 20 characters 
printf ("%06d", myint); // 6-digits, zero filled 
+0

Спасибо, но я ожидал ответа с участием «\ t», как кто-то еще предложил. – posixKing

+2

Важный момент (как сказал Уотервейн): 'Tab не все, что полезно для презентации '. Интервал между вкладками может появляться или появляться, как вы ожидаете. Хуже того, расстояние между вкладками почти наверняка будет * DIFFER * между DOS cmd prmopt ... или окном SSH .. или записной книжкой ... или текстовым редактором ... или SVN или Git ... – paulsm4

+1

«Всегда будет ровно 20 символов "-> Всегда будет не менее 20 символов.", так как это "необязательная минимальная ширина поля". Вы имели в виду '" 20.20s "? – chux

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