Jump to content

Recommended Posts

Здравствуйте, уважаемые форумчане!

В общем, недавно писал одну простенькую программку на C# и заметил одну особенность использования функции Console.Read(), когда функция используется в программе несколько раз. Например, имеется код:

static void Main(string[] args){		double x2, x, m, d, a, b;		Console.Write("Введите коэффициент при x^2: ");		x2 = Console.Read();		Console.Write("Введите коэффициент при x: ");		x = Console.Read();		Console.Write("Введите c: ");		m = Console.Read();		d = Math.Pow(x, 2) - 4 * x2 * m;		a = (-x + Math.Sqrt(d)) / (2 * x2);		b = (-x - Math.Sqrt(d)) / (2 * x2);		Console.Write("x1 = {0}, x2 = {1}", a, b);		Console.ReadKey();}

При запуске программа просит ввести значение x2. Вводим, жмём Enter и тут программа сразу же каким-то образом откуда-то берёт x и m и даёт какой-то "левый" ответ. При повторном нажатии Enter программа закрывается. Функция Console.Read() как бы выполняется только 1 раз: в самом начале программы; в остальных случаях она пропускается почему-то (или даже скорее не пропускается, а просто то же самое значение, введённое в первый раз, присваивается при всех последующих вызовах функции Console.Read()). Почему так? Может быть я что-то не так делаю?

P.S: Компилятор - MS Visual C# 2010 Express

Edited by Shadow TH
Link to comment
Share on other sites

Используйте Console.ReadLine();

Да. Это работает. Правда приходится всё время преобразовывать тип переменных из String в Double перед выполнением каких-либо вычислений, что достаточно неудобно (Console.ReadLine() отказывается работать с переменными типа Double, только String).

Спасибо за помощь. :(

Edited by Shadow TH
Link to comment
Share on other sites

  • 2 weeks later...
  • 8 months later...

Решил отдельную тему про C# не создавать.

Имеется массив переменных типа byte. В нём записан текст в формате UTF-16 (1200), т.е. первые два байта - 254 и 255, а затем идут текстовые символы размером в 2 байта каждый. Нужно преобразовать этот массив в обычную строку string. Как это сделать, подскажите, pls :)

Link to comment
Share on other sites

  • 2 weeks later...

С предыдущей проблемой разобрался.

Возник вопрос, снова по C#. Имеется файл, в котором записаны двоичные данные. Мне нужно прочесть оттуда скажем первые 4 байта и присвоить их значение одной переменной типа int32 (int32 как раз имеет размер 4 байта). Как это сделать? Также интересует обратная операция: запись скажем 4-байтовой переменной типа int32 в двоичный файл. Ведь при использовании потоков есть функции write и writebyte, а скажем writeint32 или что-то подобного нет. Заранее спасибо.

Edited by Shadow TH
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...