Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Рекомендуемые сообщения

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

В общем, недавно писал одну простенькую программку на 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

Изменено пользователем Shadow TH
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем Shadow TH
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
  • 8 месяцев спустя...

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

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

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

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

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

Изменено пользователем Shadow TH
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...