У меня есть текстовый файл со строкой, которую я хотел бы закодировать.
Допустим, это: aaahhhhiii kkkjjhh ikl wwwwwweeeett
и вот код:
void Encode(std::string &inputstring, std::string &outputstring)
{
for (int i = 0; i < inputstring.length(); i++) {
int count = 1;
while (inputstring[i] == inputstring[i+1]) {
count++;
i++;
}
if(count <= 1) {
//std::cout << inputstring[i] << "";
outputstring += inputstring[i];
outputstring += "";
} else {
//std::cout << inputstring[i] << count;
outputstring += inputstring[i];
outputstring += count;
}
}
}
вывод должен быть: 3a4h3i 3k2j2h ikl 6w4e2t
Символы или пробелы с меньшим (или равным), чем один символ, только что распечатаны - без изменений.
Пока все хорошо и код работает ... на самом деле.
Когда я использую std::cout
в if
и else
- тогда он показывает вывод, как указано выше. Так прекрасно.
НО, я бы хотел передать результат параметрам (std::string &outputstring
) и распечатать результат в основном методе.
Но он печатает ТОЛЬКО if statement
не else statement
.
Может кто-нибудь помочь мне с этим вопросом?