Как получить кодировку CMD / консоли в C #

Мне нужно указать правильную кодовую страницу для упаковки файлов с помощью библиотеки zip. Как я вижу, мне нужно указать кодировку консоли (866 в моем случае).

 C:\Users\User>mode

 Status for device CON:
 ----------------------
     Lines:          300
     Columns:        130
     Keyboard rate:  31
     Keyboard delay: 1
     Code page:      866 <- I need to get this value in C# code

Console.OutputEncoding возвращает 1251, что мне не нужно.

Спасибо,

Alex

Обновление 1: Очевидно, что выполнить "режим" в cmd.exe и синтаксический анализ должен работать, но это кажется слишком грубым. Я ищу решение .NET.

Обновление 2: Приложение представляет собой приложение Windows Forms, а не консольное приложение. Есть вопросы, которые меня сильно смущают. например: class A {public: virtual void f () {// что-то делать; } } ...

Я новичок в C ++, сейчас изучаю виртуальные функции. Есть несколько вопросов, которые меня сильно смущают.

например:

class A {
  public:
  virtual void f() {
      //do something; 
  }
}

class B: public A {
   public:
   virtual void f() {
//do something;
}
}
  1. класс A содержит виртуальную функцию f () , а класс B наследует ее. Внутри класса B функция f () также объявлена ​​как виртуальная, поэтому это означает, что f () в классе B перегрузки f () в классе A ? Разрешает ли он классам, наследующим B , перегружать f () ? Или B определяет новую виртуальную функцию, которая отличается от f () в классе A ?

  2. Виртуальные функции предоставляют способ перегрузки методов. Если B наследует A и не объявляет f () как виртуальный , и так далее. Когда я использую десятичный тип данных для хранения ...

    У меня в основном четыре числа (скажем, 100, 200, 300, 400), и мне нужно рассчитать вероятность как 100 / (100 + 200 + 300 + 400) , 200 / (100 + 200 + 300 + 400) и т. Д.

    Когда я использую десятичный тип данных для хранения этих вероятностей, они не доходят до единицы из-за проблем с округлением. Как лучше всего обойти это, не делая вероятностей слишком неточными? Обычно я делаю это вычисление много-много раз, поэтому мне не нужно менять все деления на Math.Round. : |

5
задан Matt 6 May 2011 в 11:15
поделиться