Ярославль


  Ответ в темуСоздание новой темыСоздание опроса

С#, Что за ошибка?

Alexey Smirnov
Дата 17.09.2013 - 20:36
Цитировать сообщение




В малиновых штанах
*****

Профиль
Группа: Пользователи
Сообщений: 2896
Пользователь №: 83235
Регистрация: 17.09.2011 - 18:22





Создал код, он рабочий, но дома не запускается Microsoft Visual Studio, а выдает вот такую ошибку:
http://pastexen.com/i/HF3DUNAfG6.jpg
что делать? как исправить?

сам код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Programma_2
{
class Program
{
static void Main(string[] args)
{
int current; // текущий элемент
int num = 0; //счетчик, показывает номер элемента
int elCount = 0; //выходное значение
int count;
Console.Write("числа=");
count = int.Parse(Console.ReadLine());
for (int i = 0; i < count; i++)
{
current = int.Parse(Console.ReadLine());
num++;
if ((current % 2 != 0) && (num % 2 == 0))
{
elCount++;
}
}
Console.WriteLine("{0}", elCount);
Console.ReadKey();
}

}
}
PMПисьмо на e-mail пользователю
Top
Вадим1027
Дата 17.09.2013 - 21:11
Цитировать сообщение




В желтых штанах
***

Профиль
Группа: Пользователи
Сообщений: 122
Пользователь №: 139388
Регистрация: 11.07.2013 - 12:57





Ну так вроде оно прямо говорит, что неверный формат, когда пытается строку от
Console.ReadLine() спарсить в int.

Смотри что програмка приняла по твоему вводу с консоли. буквы случаем не вводил? или там дробное число (точку или запятую) ?

PMПисьмо на e-mail пользователю
Top
Alexey Smirnov
Дата 17.09.2013 - 22:14
Цитировать сообщение




В малиновых штанах
*****

Профиль
Группа: Пользователи
Сообщений: 2896
Пользователь №: 83235
Регистрация: 17.09.2011 - 18:22





все правильно с клавиатуры ввожу, но этот неверный формат входных данных все равно выскакивает
PMПисьмо на e-mail пользователю
Top
Вадим1027
Дата 18.09.2013 - 05:27
Цитировать сообщение




В желтых штанах
***

Профиль
Группа: Пользователи
Сообщений: 122
Пользователь №: 139388
Регистрация: 11.07.2013 - 12:57





Так-то я в основном с Java работаю, да и сейчас компа с C# под рукой нету.
Короче правильное написание это использование try - catch блока.
Поскольку любой человек может мимо нужной клавиши тыкнуть.

Поэтому при таком exception его надо либо игнорировать, либо ругать человека, типа "куда тычешь остолоп" smile.gif

И еще опять же когда вводишь цифирь я не знаю как С# принимает EOL когда Enter нажимаешь или скажем если без ввода числа пустую строку.
Или по окончании ввода всех чисел... что там используется? Ctrl-D ?

Сделай типа так: (за синтаксис не отвечаю - это псевдо-код скорее на Java)
вместо
current = int.Parse(Console.ReadLine());

такой код:

String inStr = Console.ReadLine();

Console.WriteLine("Line read: {0}", inStr);

current = int.Parse(inStr);

тогда до ошибки увидишь на консоле чего оно там зачитало.
и в дебагере легче посмотреть, что же реально есть в inStr и почему оно не желает парсится.

потом этот WriteLine уберешь и всего делов.

Но try-catch вообще-то обязателен в таких прогах.

Это сообщение отредактировал Вадим1027 - 18.09.2013 - 05:30
PMПисьмо на e-mail пользователю
Top
Alexey Smirnov
Дата 18.09.2013 - 13:27
Цитировать сообщение




В малиновых штанах
*****

Профиль
Группа: Пользователи
Сообщений: 2896
Пользователь №: 83235
Регистрация: 17.09.2011 - 18:22





Спасибо за ответ wink.gif
Переделывать ничего не пришлось, так как разобрался в чем ошибка была. Первый раз, когда вводишь число - это всего чисел в посл-ти, а все остальные разы, когда вводишь числа - это числа этой посл-ти.
PMПисьмо на e-mail пользователю
Top
Опиум
Дата 19.09.2013 - 17:37
Цитировать сообщение




Куплю AED по 25₽
********

Профиль
Группа: Пользователи
Сообщений: 101528
Пользователь №: 7415
Регистрация: 8.04.2006 - 14:37





.Parse вываливает ошибку при некорректном вводе?

в старом-добром дельфи я StrtoIntDef юзаю в этом случае.
PM
Top

Опции темы Ответ в темуСоздание новой темыСоздание опроса

 



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



Яндекс.Метрика

Правила Ярпортала (включая политику обработки персональных данных)

Все вопросы: yaroslavl@bk.ru