1 / 1 / 3
Регистрация: 12.10.2012
Сообщений: 150
|
||||||
1 | ||||||
String subscript out of range02.03.2017, 22:24. Показов 4055. Ответов 9
Метки нет (Все метки)
Разбираю пример, который дала препод в примерах к лекциям..Пример по коду Виженера.. Пару раз запустился-результат выводился.Исправила только алфавит на кириллицу,и поставила на некоторые строки коменты.Теперь консолька запускается, начальный этап проходит, но потом результат не выводится, и консолька просто виснет..и выбивает это сообщение про "Debug assertion failed : string subscript out of range"
По пошаговой отладке понимаю что проблема вроде как с загрузкой символов на 81 строчке.. А как сделать чтоб работало нормально-правильно?
0
|
02.03.2017, 22:24 | |
Ответы с готовыми решениями:
9
String subscript out of range String subscript out of range String subscript out of range String subscript out of range |
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
|
|
02.03.2017, 22:34 | 2 |
в вашей 81 строке ничего такого, что может родить ассерт не происходит.
поведение вашей программы зависит от того, что вы там вводите. я вбил что-то от балды и ассертов не было. в таких случаях вводные данные надо писать тут, а еще лушче тупо хардкодить, вместо того, чтобы запрашивать у пользователя их ввод. сильно экономит время всем. после отладки хардкод можно убирать. ну и до кучи почитайте третий пост из темы: Как пользоваться отладчиком (в Visual Studio)
0
|
93 / 91 / 62
Регистрация: 23.11.2013
Сообщений: 242
|
||||||
02.03.2017, 22:48 | 3 | |||||
Особо не вникал в код, но, пройдя отладчиком, у вас после 69 строки
0
|
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
||||||
02.03.2017, 22:54 | 4 | |||||
Найди точное место в коде, где ошибка вылетает. Судя по ошибке, где-то выходишь за границу string, значит внимание к местам, где к
string A по индексу обращаешься. Например:
0
|
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
|
|
02.03.2017, 22:55 | 5 |
От нуля до 35 - вроде не очень большое. А в массиве
А как раз 36 элементов.Точнее, 37 элементов, так что делить по модулю нужно на 37, если я правильно понял алгоритм.
0
|
93 / 91 / 62
Регистрация: 23.11.2013
Сообщений: 242
|
|
02.03.2017, 23:05 | 7 |
Странно, у меня явно переменная е после 69 строки всегда отрицательное значение имеет, чтобы я не вводил, и именно здесь мне бросает исключение выхода за границы
0
|
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
|
||||||
02.03.2017, 23:17 | 9 | |||||
Кажется понял в чём дело. Если строка содержит только символы алфавита, то программа не вылетает. Но если есть хотя бы один пробел или например цифра, то 51 строка не будет выполнена и этот элемент массива не будет инициализирован. Отсюда и все глюки.
Кроме того, для корректного ввода русских букв нужно в начале программы добавить строки
--- Я бы вообще сначала отладил программу для английского алфавита, а потом при желании добавил поддержку русского.
1
|
93 / 91 / 62
Регистрация: 23.11.2013
Сообщений: 242
|
||||||
02.03.2017, 23:18 | 10 | |||||
Вот вот, я и о том же. Я даже больше скажу, у меня и после 76 строки
0
|
02.03.2017, 23:18 | |
02.03.2017, 23:18 | |
Помогаю со студенческими работами здесь
10
Ошибка string subscript out of range Ошибка String subscript out of range Ошибка: string subscript out of range Expression: string subscript out of range Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |