Я пытаюсь написать программу, чтобы получить строку ввода символов от пользователя и заменить пробелы во вводе, используя минимальное количество вкладок и пробелов. Google сообщает мне, что количество пробелов на вкладке равно 8, тогда как, когда я получаю ввод через cmd, вкладка дает несогласованный интервал для букв разной длины. Нужно ли мне изменить параметр в командной строке?
#include<stdio.h>
int main()
{
printf("hellohello\tworld\n");
printf("hello\tworld\t\n");
return 0;
}
Приведенный выше код дает мне различный интервал табуляции в обоих операторах печати.
если после «привет» есть вкладка, отображается 3 пробела, тогда как вкладка после «привет» дает мне 4 пробела.
Это потому, что у вас есть настройка, при которой вкладка "кажется, заполняется" до следующего кратного 8 символов.
Есть ли способ изменить этот параметр в cmd?





Есть причина, по которой, когда вы печатаете
eggs\t2
coffee\t10
bread\t5
в текстовом процессоре / терминале вы получаете красиво отформатированный
eggs 2
coffee 10
bread 5
Табуляция всегда будет заполнять пробелы до следующего интервала X-пробела (называемого «табуляция»), при этом X обычно устанавливается равным 4 или 8. Если вы хотите написать три пробела, напишите три пробела. Вы можете использовать команду column в bash или tabstop в vim, чтобы настроить отображение вкладок, но не так, как вы описываете.
Большое спасибо. Думаю, я пропущу упражнение. Это был вопрос-упражнение на языке программирования C Дениса Ричи, написанный в 80-х годах. Думаю, тогда на вкладке было фиксированное значение пробелов, иначе проблема не имеет смысла.
Нет, @UdhaySankar, ты неправильно понял. Табуляция никогда не соответствовала фиксированному количеству пробелов в общем, но определенно существует фиксированное количество пробелов, которые помещаются между любыми двумя конкретными позициями табуляции. Если вы предполагаете шрифт с фиксированным шагом, что, несомненно, и делает упражнение, то между каждой парой позиций табуляции есть фиксированное количество символов (любого типа). Вероятно, упражнение также предполагает, что позиции табуляции имеют интервал регулярно, например, с 8-символьными интервалами. Упражнение по-прежнему вполне выполнимо, и его можно проверить.
@JohnBollinger, да, я неправильно это понял. Мне нужно переписать свою программу с учетом фиксированного количества пробелов между табуляторами. Это выглядит просто, но немного сложно. :-)
Во вкладке нет пробелов. Редакторы / вьюверы / терминалы - это показывая это вроде бы куча пробелов. Их количество зависит от настроек редактора / вьювера / терминала.