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

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

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

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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