С# char convert.toint32.... В чем проблема конвертирования?

Рейтинг: -3Ответов: 2Опубликовано: 11.01.2023

Делаю игру быки и коровы. Не понимаю откуда проблема. При преобразовании строки или масива чаров, в масиве чисел появляються другие значения. Если 1 = 49, 2 = 50, 3 = 51 и тд. Подскажите в чем может быть проблема.

Часть кода

Ответы

▲ 1

Потому что вы прям в прямом смысле преобразуете char в int. char это символ, а его преобразование в числовой тип данных будет выдавать вам ИНДЕКС СИМВОЛА. char имеет диапазон от 0 до 65535. Это можно понять по тому, что сам тип данных char занимает в памяти 16 бит, соответственно, всего его значения кодируются в 16-битной кодировке. Ваши соответствующие числа это соответствующие индексы этих цифр в таблице ASCII

Для вашего преобразования попробуйте использовать int.Parse или явное преобразование char в int

▲ 0

Используй Int32.Parse() там есть несколько перегрузок смотри на https://learn.microsoft.com/ru-ru/dotnet/api/system.int32.parse?view=net-7.0

Но т.к. это консольный ввод то нет гарантии что пользователь будет вводить исключительно числа. Можно использовать TryParse()