форматирование и печать строк - PullRequest
1 голос
/ 23 июня 2011

Я пытаюсь выровнять значения.Интересно, почему это происходит:

        string value = "";

        value += string.Format("{0,-10}", "value");
        value += string.Format("{0,5}", "value");

        value += Environment.NewLine;

        value += string.Format("{0,-8}", "val");
        value += string.Format("{0,7}", "value");

        Print(value);

Если я проверяю значение, прежде чем я "Печать", это правильно.Результат:

value     value
val       value

Как и должно быть, но когда я печатаю «значение» на моем принтере, они получают вот так:

   value     value
   val     value

Я действительно не могу понять, почему он меняетсястрока, когда я печатаю текст?

Я пытался использовать "\ t", но мой принтер, кажется, не понимает "\ t", потому что вкладки не распечатаны.

Кстати: это всего лишь тестовый код, чтобы вы моглипонять проблему с реальным кодом.

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

ваша консоль использует шрифты фиксированной ширины, в отличие от вашего принтера (по крайней мере, по умолчанию). Таким образом, пробелы занимают меньше места на вашем принтере, а ваши письма занимают больше или меньше места в зависимости от их фактической ширины.

2 голосов
/ 23 июня 2011

Это может быть вызвано шрифтом, который использует символы различной ширины. В шрифтах не фиксированной ширины пробелы часто уже, чем буквы и цифры, поэтому может показаться, что пробелы отсутствуют. Попробуйте использовать Lucida Console или другой шрифт фиксированной ширины.

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