using System;
class Trigon
{
static void Main()
{
for (double theta = 0.1; theta <= 1.0; theta = theta + 0.1)
{
Console.WriteLine("Синус {0:F2} равен {1:F2}\t Косинус {0:F2} равен {2:F2} Тангенс {0:F2} равен {3:F2}", theta, Math.Sin(theta), Math.Cos(theta), Math.Tan(theta));
}
}
}
Здравствуйте, уважаемые.С помощью ответов из предыдущего вопроса я немного усовершенствовал свой код. :) Убрал лишние слова и Console.WriteLine()
И никаких новых for()
! :D Получил симпатичные столбцы.Но опять возникла проблема(знаю я надоел, но мне больше некому обратиться. :( Есть ли вы считаете меня тупым можете писать ссылки на нужный материал я прочитаю!!!).В коде использую \t
(вроде это таб).На {1:F2}\t
все красиво и нормально, но когда пишу \t
после {2:F2}
расстояние между значением "Косинуса" и словом "Тангенс" 2 раза больше(вроде, это на глаз).Увеличивается расстояние и между строками.В чем проблема(почему меня это так волнует?Я Перфекционист! :D )?
Можно было добавить пробелы и вручную но я считаю что это тоже нужно доверить машине. xD Или может есть другие специальные команды чтобы ставить пробелы(пример: \p5
(это 5 пробелов.Значение которое можно изменять))?
Проблему с \t
объяснил @Umed в своём ответе, а я расскажу, как с этим бороться.
Если вам нужно вставить фиксированное число пробелов, вы можете использовать просто форматирование с указанием желаемой ширины поля вывода. Например, так:
Console.WriteLine("Синус {0:F2} равен {1:F2}{4,20}Косинус {0:F2} равен {2:F2} Тангенс {0:F2} равен {3:F2}", theta, Math.Sin(theta), Math.Cos(theta), Math.Tan(theta), null);
Я добавил фиктивный последний аргумент null
, который выводится после синуса в поле шириной в 20 символов.
Если вы используете C# 6, можно писать и проще:
Console.WriteLine($"Синус {theta:F2} равен {Math.Sin(theta):F2}{' ',20}Косинус {theta:F2} равен {Math.Cos(theta):F2} Тангенс {Math.Cos(theta):F2} равен {Math.Tan(theta):F2}");
\t
выравнивает слова по табуляции добавляя недостающие пробелы, но когда слова выравнены по табам и Вы пишите \t
, то добавляете 8 (или сколько у Вас таб?) пробельных символов дополнительно.
Пример (один таб - 8 символов, один символ пробела заменён на -|
, чтобы проще было считать):
1234 \t 9
превратится в:
1234 -|-|-| 9
То есть добавилось 3 символа и текст, слева от \t
, выровнялся до недостающей табуляции.
Другой пример (здесь уже есть два знака пробела):
123456-|-| \t 9
Превратится в:
12345-|-| -|-|-|-|-|-|-|-| 9
Слева от знака \t
уже 8 символов и если мы после них напишем \t
, то добавим дополнительный таб (то есть 8 символов, так как текст уже был выровнен):
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
В примере показано как работает код, но нужно чтобы ответ приходил не следующей командой, а продолжением запроса
У меня есть хендл контрола, мне нужно получить текст, который он содержит, однако WM_GETTEXT возвращает пустую строку, я предполагаю, что в приложении,...