Четкость нажатия клавиши табуляции при вводе данных через командную строку

Я пытаюсь написать программу, чтобы получить строку ввода символов от пользователя и заменить пробелы во вводе, используя минимальное количество вкладок и пробелов. Google сообщает мне, что количество пробелов на вкладке равно 8, тогда как, когда я получаю ввод через cmd, вкладка дает несогласованный интервал для букв разной длины. Нужно ли мне изменить параметр в командной строке?

#include<stdio.h>
int main()
{
printf("hellohello\tworld\n");
printf("hello\tworld\t\n");
return 0;
}

Приведенный выше код дает мне различный интервал табуляции в обоих операторах печати.

Во вкладке нет пробелов. Редакторы / вьюверы / терминалы - это показывая это вроде бы куча пробелов. Их количество зависит от настроек редактора / вьювера / терминала.

Eugene Sh. 03.08.2018 17:05

если после «привет» есть вкладка, отображается 3 пробела, тогда как вкладка после «привет» дает мне 4 пробела.

Udhay Sankar 03.08.2018 17:06

Это потому, что у вас есть настройка, при которой вкладка "кажется, заполняется" до следующего кратного 8 символов.

Ingo Leonhardt 03.08.2018 17:12

Есть ли способ изменить этот параметр в cmd?

Udhay Sankar 03.08.2018 17:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
98
1

Ответы 1

Есть причина, по которой, когда вы печатаете

eggs\t2
coffee\t10
bread\t5

в текстовом процессоре / терминале вы получаете красиво отформатированный

eggs    2
coffee  10
bread   5

Табуляция всегда будет заполнять пробелы до следующего интервала X-пробела (называемого «табуляция»), при этом X обычно устанавливается равным 4 или 8. Если вы хотите написать три пробела, напишите три пробела. Вы можете использовать команду column в bash или tabstop в vim, чтобы настроить отображение вкладок, но не так, как вы описываете.

Большое спасибо. Думаю, я пропущу упражнение. Это был вопрос-упражнение на языке программирования C Дениса Ричи, написанный в 80-х годах. Думаю, тогда на вкладке было фиксированное значение пробелов, иначе проблема не имеет смысла.

Udhay Sankar 03.08.2018 18:07

Нет, @UdhaySankar, ты неправильно понял. Табуляция никогда не соответствовала фиксированному количеству пробелов в общем, но определенно существует фиксированное количество пробелов, которые помещаются между любыми двумя конкретными позициями табуляции. Если вы предполагаете шрифт с фиксированным шагом, что, несомненно, и делает упражнение, то между каждой парой позиций табуляции есть фиксированное количество символов (любого типа). Вероятно, упражнение также предполагает, что позиции табуляции имеют интервал регулярно, например, с 8-символьными интервалами. Упражнение по-прежнему вполне выполнимо, и его можно проверить.

John Bollinger 03.08.2018 18:31

@JohnBollinger, да, я неправильно это понял. Мне нужно переписать свою программу с учетом фиксированного количества пробелов между табуляторами. Это выглядит просто, но немного сложно. :-)

Udhay Sankar 03.08.2018 19:20

Другие вопросы по теме