Форматированный вывод с управляющими символами в C? - PullRequest
0 голосов
/ 30 ноября 2010

Прочитав про управляющие символы из Википедии, я попытался написать некоторый код, используя их.Когда я писал один из них, я не мог успешно написать требуемый / требуемый вывод:

name    :  ...
surname :  ...
              asadsa  // these three words are some data 
              adsdsa  
              asdsds

мои усилия:

fprintf(stdout, "\rname\t\t\b:%s\r\fsurname\t:%s\v %s \v%s \v%s ",
        name, surname, data1, ...)

, но вывод:

name     : georg.
surname  : alafron.
                   to the school
                   ....
                   ....

но этот вывод не желателен, так как я могу исправить это, используя fprintf() и управляющие символы?

1 Ответ

2 голосов
/ 30 ноября 2010

Как правило, у вас редко будет причина использовать какой-либо из управляющих символов '\a', '\b', '\f', '\v', и вы не часто будете использовать '\r'; это оставляет '\t' и '\n', оба из которых вы, вероятно, будете использовать. В прошлый раз, когда я использовал '\r' и '\b', я писал код для полужирного печати на принтере с гирляндным колесом путем перегрузки - записи одних и тех же данных дважды. Это не помогает на современных струйных или лазерных принтерах.

Немного трудно понять, в чем разница между требуемым и фактическим выходом. Однако, предполагая, что ваши данные находятся в переменных name, surname, data1, data2 и data3, эта строка формата должна делать то, что вы хотите:

printf("name    :  %s\nsurname :  %s\n%14s%s\n%14s%s\n%14s%s\n",
       name, surname, "", data1, "", data2, "", data3);

Формат '%14s' указывает, что ширина должна составлять 14 символов, что является размером отступа в строках данных. Пустая строка заполняется пробелами до 14 символов и сопровождается соответствующим битом данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...