Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как считать значения из консоли, Как считать значения из консоли 
:(
    Опции темы
ai4004
  Дата 16.5.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.5.2006
Где: Минск

Репутация: нет
Всего: нет



Доброго времени суток !

Помогите пожалуйста с проблемой в С#, я только начал его изучать. Мне нужно заполнить массив числами , введенными с клавиатуры, я взял из System Console.Read()метод и просто поставил его в цикл for. У меня стоит VS2005 , но мало того, в цикле в принципе не хочет соблюдаться метод Read, т.е. 1-й раз он используется, а потом ерунда происходит, цикл пробегает 3 раза и только потом опять метод Read используется... Т.е. он не каждую итерацию выполняется. И еще трабл, почему-то присвоение переменной не играет роли на значении этой пременной, т.е. допустим я методом REad считываю цифру из консоли, доп. 3 , а в Watch видно что она стала 51 !! Как я только не паролся с этим , даже если потом явно указать = 3, все равно равно 51 !
Вот код :

using System;

class Display
{
    public int size;
    public void In()
    {
        Console.Write("Введите количество Х : ");
        size = Console.Read();// она равна 51 (
        double[] x = new double[size];
        double[] y = new double[size];
        Console.WriteLine("Введите вектор X : ");
        for (int i = 0; i < size; i++)
        {
            Console.Write("X" + i + ": ");
            x[i] = Console.Read();// не каждую итерацию работает
        }
        Console.WriteLine("Введите вектор Y : ");
        for (int i = 0; i < size; i++)
        {
            Console.Write("Y" + i + ": ");
            y[i] = Console.Read();
        }
    }

    public void Out()
    {

    }
}


class IntNut
{
    public static void Main()
    {
        Display In = new Display();
        Display Out = new Display();
        In.In();

    }
} 
PM MAIL ICQ   Вверх
nikitao
Дата 16.5.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 4
Всего: 26



ai4004, использую теги 
code
/code

Console.Read возвращает не число введеноое пользователем, а код символа. 


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Balu
Дата 16.5.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.8.2002

Репутация: нет
Всего: 1



Если используешь Read то попробуй вводить значения через пробел.
Если вводишь каждое значение через клавишу Enter то используй ReadLine  
PM MAIL   Вверх
Сарт
Дата 19.5.2006, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 29.4.2006

Репутация: 1
Всего: 0



Не уверен что поможет ,но попробуй использовать вместо
Цитата

for (int i = 0; i < size; i++)


Код

for (int i = 0; i < size.Length; i++)

 
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
nikitao
Дата 19.5.2006, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 4
Всего: 26



Да аффтара топика нет  smile  . Короче 
ai4004, если появишься, то знай smile  Строчку 
Код

 x[i] = Console.Read();

на
Код

    x[i] = Convert.ToInt32(Console.ReadLine());
 smile   

Это сообщение отредактировал(а) nikitao - 19.5.2006, 21:56


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Void
Дата 19.5.2006, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 25
Всего: 173



Как-то так:
Код
int size;
while (!Int32.TryParse(Console.ReadLine(), out size) && size <= 0)
    Console.WriteLine("Invalid size. Reenter.");
double[] x = new double[size];
for (int i = 0; i < x.Length; ++i)
    while (!Double.TryParse(Console.ReadLine(), out x[i]))
        Console.WriteLine("Invalid value. Reenter.");
 


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.