Отчасти она была права. Код должен быть хорошо читаем. Во всяком случае, это важнее чем количество строк.Max Diesel писал(а):(во время обучения в учебном заведении преподаватель информатики была очень недовольна тем, что в отличие от остальной группы я писал код программы в одну строку вместо привычных ей 5-10 строк).
Да, об этом я не подумал. Но честно говоря, если в именах файлов по 800 цифр, то абсолютно безразлично, как они отсортированы. Без слез на такой каталог все равно смотреть будет нельзя и воспользоваться результатом умной сортировки - тоже. Надо решать конкретную задачу, а не некий общий случай. По-моему, интом (ну, или long long для перфекционистов) вполне можно ограничиться. И предусмотреть заглушку (т.е. традиционную сортировку) для чисел которые не лезут в диапазон.Max Diesel писал(а):Числа бывают разные... число "8774531" вполне можно сравнить с числом "6785375" через int, а если у чисел длина 800 знаков?
Не надо впадать в крайности - если теория вероятности говорит, что случай менее вероятен, чем прямое попадание в компьютер метеорита, то реализовывать его не надо . Попадания метеорита комп все равно не переживет.
Max Diesel писал(а):Хм... без компилятора и соответственно без тестирования - это какой-то вероятно новый уровень программирования (Unreal Commander зачастую содержит ошибки, которые могут навести на мысль что программа сформирована в голове
Ни в коем разе. В голове был сформулирован мой отрывок. Это не новый уровень и даже не совсем программирование. Скорее размышления на тему, оформленные в код.
Max Diesel писал(а): Для начала хотелось бы отметить что функция "wsscanf" в стандартной сборке отсутствует (либо я просто не нашел что именно надо заинклудить).
Гугль утверждает, что есть - #include <widec.h> или swscanf - #include <stdio.h>. Чем они различаются - не знаю, прототип один и тот же. Впрочем, у строчных функций часто случается такое дублирование.
Max Diesel писал(а):Рекурсия для функции сравнения - жесткий подход... сразу скажу результат - заменив wchar на wchar_t (насколько я знаю, он так называется для Wide), поставив sscanf(String(string1).c_str(),"%d", &nNum1); вместо wsscanf(string1, "%d", &nNum1); запуском функции сортировки я отправил компьютер в такие глубокие размышления, что если бы через 10-15 секунд не произошло переполнение буфера, то вероятно пришлось бы отключать приложение принудительно. Было бы неплохо если бы Вы сначала протестировали код... хотя спасибо за старания.
Можно было бы и без рекурсии - но так элегантнее и не нужно дважды писать одно и то же. С точки зрения производительности и расхода памяти не блеск, но вряд ли затормозит сильно. Наверняка, именно она и отправила приложение в ступор. Значит, чего-то я недоглядел . Если будет время - поставлю компилятор и проверю.