Я работаю над файлом c ++ и столкнулся с интересной проблемой.Я выводю строки в текстовый файл (используя ofstream), и у меня есть следующие строки:
void InstructionWriter::outputLabel(string s){
string sLabel;
sLabel = s;
sLabel.erase(remove(sLabel.begin(), sLabel.end(), ' '),sLabel.end());
sLabel = "(" + function + "$" + sLabel + ")\n" ;
outputFile << sLabel;
}
Проблема в том, что он выводит текстовый файл.
Когда я направляюсь к текстовому файлу, в котором был запущен outputLabel, выделение строки подсчитывает символы +1 символа.что +1 "невидим".Выделение строки не выберет ее.Единственный способ исправить это - начать удаление справа.После того, как вы нажмете «)», я замечу, что снова нажал «Удалить», но курсор не двигался, и кажется, что ничего не было удалено.
Я думаю, что это скрытый символ нулевой ширины, но я не знаю, как вычеркнуть это из строки, у кого-нибудь есть какие-нибудь идеи о том, на какие функции смотреть?
@ smac89
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_M_replace
0
Это то, что терминал бросил в меня после выполнения упомянутой вами команды.