| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] Работа с файлами |
| Автор: pioner_1983 3.12.2007, 21:46 | ||
Дан текстовый файл содержащий следующую информацию: Наименование товара и количество имеющегося товара. Например:
Левый столбец - наименование товара. Правый столбец - Кол-во имеющегося товара. Подсчитать кол-во имеющегося товара по каждому наименованию. Вначале думал сделать так: Просматривать в цикле каждую строку, запоминать наименование товара, сравнивть с предыдущем и если оно не равно предыдущему искать в файле все товары такого наименвоания и складывать их кол-во. Потом понял что это неправильно. Подскажите как можно написать такую прогу плз... |
| Автор: likehood 3.12.2007, 23:18 | ||
|
| Автор: under_sun 3.12.2007, 23:23 |
| map<string, int> тебе в помощь! А если не знаком с STL, то самое простое - это завести 2 массива: в одном храни наименование товара, а во втором соответствующее значение. При чтении каждой новой строки в цикле, проверяешь, есть ли такой товар в первом массиве. Если есть, то увеличиваешь соответствующее значение во втором массиве. Опоздал с map -ом |
| Автор: pioner_1983 4.12.2007, 23:59 |
| Спасибо за помощь! Но есть одна проблема. Проблема в том что у нас в универе все проги проверяются на компиляторе Borland C++ v3.1, а он как я понял STL не поддерживает. Можно ли както откомпилить эту прогу в Borland C++ v3.1? Может нужно добавить оответствующую библиотеку, (Пробовал библиотеку из DevCpp, всеравно не компилится) или текст проги изменить? Или отсается только через массивы делать? |
| Автор: likehood 5.12.2007, 09:58 |
нет да, это самый простой способ. на будущее: если можно использовать только BC 3.1, говорите об этом заранее |
| Автор: pioner_1983 5.12.2007, 17:22 | ||
| Начал делать через массивы. Я так понял что перед тем как читать каждую строку файла в цикле и проверять если такой товар в певом массиве, нужно вначале этот товар в первый массив. Вот что у меня получилось.
Проблема в том что ответ не выводится. Подскажите где ошибки плз.. |
| Автор: Oleg_Ci 5.12.2007, 17:25 | ||
Через массив
|
| Автор: pioner_1983 5.12.2007, 20:40 |
| Oleg_Ci, Спасибо за помощь, но к сожелению твоя прога не компилится в BC++ 3.1. Компилятор 2 раза ругается на bool Compare в 13 строке, пишет Type name expected и Declaration missing ;. И еще ругается на 33 строку, пишет 'Compare' is not a member of 'CBook' Скажите плз... можно ли откомпилить эту прогу в BC++ 3.1, если да то как ипсравить ошибки. Или помогите исправить ту прогу, которую я скинул в 6 посте. Она почему то ответ не выдает (Там навреное в 1 цикле проблема начинается). |
| Автор: under_sun 5.12.2007, 22:19 | ||||
Тут баг:
И тут:
И где у тебя массив товаров? И логику твою с двумя while -ми я как-то не очень понял... |
| Автор: likehood 5.12.2007, 22:46 |
замени bool на int, true на 1, false на 0. и будет тебе щастье (если, конечно, других ошибок нет |
| Автор: pioner_1983 6.12.2007, 16:58 |
| Все откомпилил, спасибо большое за помощь! |