![]() |
|
![]() ![]() ![]() |
|
Dr_VOLAND |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: 0 Всего: 0 |
Всем привет!
Перед Вами программка, которая подсчитывает число повторений символов в файле. Класс param – содержит всякую информацию про символ: number - аски код povtor - число повторений в тексте и некую переменную code, с которой у меня и возникли проблемы.
сode – это строка, в которую я буду записывать информацию. А ошибка в функции code_set, … в конце программы. Я хочу записать единицу только в класс первого ключа, а она записывает и в остальные тоже, хотя по конструктору они должны быть пустые(( Вот результат работы кода:
В чём ошибка?? Это сообщение отредактировал(а) Dr_VOLAND - 24.9.2007, 20:36 |
||||
|
|||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 3 Всего: 60 |
что призван делать сей потрясающий код? |
|||
|
||||
Dogo |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.2.2007 Где: Санкт-Петербург Репутация: нет Всего: 9 |
Ошибка в этом куске кода.
Объект f каждый раз перезаписывается, то есть он у вас после работы цикла остается всего один.
Перенисите его объявление в тело цикла и программа заработает так, как задуманно.
--------------------
|
||||||
|
|||||||
Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: 0 Всего: 0 |
Спасибо Dogo!
В яблочко!! ![]() Это сообщение отредактировал(а) zkv - 23.12.2007, 12:42 |
|||
|
||||
Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
Сей код выделяет в памяти 4 байта, затем копирует туды строку "", зачем - хз, видимо автор хотел сделать что-то другое, но получилось так. Предложу свой вариант, на всякий случай:
![]() Добавлено через 3 минуты и 12 секунд Кстати классу param не помешал-бы деструктор. зы param - param, param - param ![]() |
||||
|
|||||
akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: нет Всего: 5 |
А так не пойдет?
-------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 3 Всего: 60 |
этот бредовый код выделяет 1 char и инициализирует его значением sizeof(char*). Все это вобщем законно, но вот сомневаюсь, что вы именно этого добивались ой, и не говори... кругом одни дэбилы..... |
|||
|
||||
akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: нет Всего: 5 |
![]() Предлагаю тогда вместо typedef создать class povtor { int value; povtor(int i=0): value(i) {}; } поменяется строчка на smthintext[i].value++; простите, если что не так ![]() Добавлено @ 09:01 Об экспертах. Нашел в законах Паркинсона-Мэрфи ссылку на определение
Это сообщение отредактировал(а) akizelokro - 25.9.2007, 13:08 -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
||||
|
||||
Dr_VOLAND |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 16.9.2007 Репутация: 0 Всего: 0 |
||||
|
||||
akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: нет Всего: 5 |
Гмык.. Самое сложное - не придумывать ненужных переменных, тогда и вопрос с их именованием отпадет сам собой. Например, в первоначальном ASCII-код символа закладывается в param::number и его же значение - ключ в map<int,param>. При этом, видна попытка прописать его напрямую в param::code. Совершенно неэффективна попытка дублирования в map <int,param> obj1. Хочется еще раз повторить вышеприведенную цитату ![]() Кстати, на ошибку в выделении памяти для char * code же говорили (ошибку, которая приводит к другой ошибке - при использовании функции code_set). Хочу отметить, чтобы сбить апломб выступающих(его), что раз выделил память с помощью new, будь добр освободить ее деструктором). Кстати, дальше я сам чутка лопухнулся ![]() Это сообщение отредактировал(а) akizelokro - 26.9.2007, 07:34 -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
не собьешь ![]() просто человек не любит критику, кому захочется дальше показывать его ошибки, я, к примеру, посмотрел в код только для того, чтобы оценить резонность замечания Fazil6, что там дальше написано - пофиг, челу виднее. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |