Неправильный Enter
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Помогите пожалуйста.
Задача. Введенная пользователем строка символов сохраняется в целочисленный массив в виде кодов ASCII. Окончание ввода по нажатию Enter. После чего данные выводятся на экран через многоточие.
Проблема. Enter вместо того, чтобы как положено, перевести курсор на новую строку, ставит его в начало строки и стирает ранее написанное.
То, что виноват именно он — выдает то, что если в цикле for изменить условие на (//; i < arr.size(); //), чтобы последний элемент массива тоже печатался, курсор опять таки встает в начало строки.
Почему так происходит и как исправить?
Прикол в том, что ты выводишь символ CR на экран, он и вызывает такой побочный эффект. CR, он же 13 символ в таблице ASCII, он же «\r» — на самом деле называется carriage return, его часто используют в консольных приложениях для демонстрирования процесса загрузки чего-либо, потому что он стирает строку, позволяя «обновлять» на ее месте информацию. Все, что нужно, чтобы твоя задумка работала, просто не выводить этот символ, например вот этим костылем.
P.S. ты делаешь много лишних манипуляций, например делаешь cast int к int или считаешь лишний раз индексы для вектора, хотя и без этого можно обойтись.
Slonopotam, читаем внимательно условие задачи:
Введенная пользователем строка символов сохраняется в целочисленный массив в виде кодов ASCII. Окончание ввода по нажатию Enter
. Это полностью укладывается в последовательность действий: (1) ввести строку и (2) сохранить строку в целочисленый массив в виде кодов ASCII. Т.е. получить от пользователя ввод в видеstring
, а потом содержимое этой переменной перевести в массив типаint
. Если принять во внимание, что по переменной типаstring
можно совершенно спокойно итерировать, и то, что символы в переменной типаstring
сохраняются в коде ASCII, задача становится тривиальной.А символ Enter вообще не надо сохранять. Это ограничитель.