Форум программистов, компьютерный форум CyberForum.ru

Обработка файлов на диске - C++

Восстановить пароль Регистрация
 
Wolfgang
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 3
13.10.2011, 16:02     Обработка файлов на диске #1
Помогите пожалуйста.
Дан файл, в отдельных строках которого прописаны комбинации цифр. Всего комбинаций 7. Строк больше, т.е. некоторые комбинации повторяются.
Требуется определить самую "популярную" из них.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2011, 16:02     Обработка файлов на диске
Посмотрите здесь:

обработка файлов C++
Реализовать копирование файлов с постоянным наличием только 1 копии на диске C++
C++ обработка файлов
C++ c++ обработка файлов
C++ обработка файлов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
13.10.2011, 16:44     Обработка файлов на диске #2
используйте map<string,int>, и увеличивайте соответствующее значение. Затем с итератором найдите максимальное значение и выводите его на экран.
Wolfgang
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 3
13.10.2011, 20:47  [ТС]     Обработка файлов на диске #3
Увы, но ассоциативный массив и итераторы мы не изучали. Программу требуется написать более простым способом.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
13.10.2011, 20:51     Обработка файлов на диске #4
тогда можно (хотя не надо бы но...) организовать вектор, в котором значения были - структуры. Структура имела вид: ключ, значение. В ключе - строка (комбинация) в значении по умолчанию 1. Считываем комбинацию, провегаемся по вектору - если комбинация уже имеется, увеличиваем значение, иначе добавляем новую комбинацию. Ну уж если не проходили и классы, то можно (хотя не слыдовало бы) взять еще один вектор и в нем хранить значения, а в первом - ключи.
Wolfgang
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 3
13.10.2011, 21:10  [ТС]     Обработка файлов на диске #5
Еще лучше. Не проходили векторы и классы.
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
13.10.2011, 21:43     Обработка файлов на диске #6
Wolfgang, дайте пример
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2011, 22:12     Обработка файлов на диске
Еще ссылки по теме:

C++ Как определить, есть ли файл на диске. Проверка двух файлов
C++ обработка файлов
Обработка файлов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,270
13.10.2011, 22:12     Обработка файлов на диске #7
Надо так делать, хоть проходили хоть нет, скажет учителю что прошёл самостоятельно и он поставит пятёрку с плюсом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <windows.h>
#include <fstream>
#include <vector>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
 
 
int  main(void) {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 
 //ОТкрываем файл на чтение
 fstream f ("f.txt");
 
 //А это вектор чисел, загоним туда файл
 vector <int> vec;
 
 int i= 0;
 int temp;
 while (f>> temp)
  vec.push_back (temp);
 //Загнали
 
 
 //Скопируем этот вектор
 vector <int> ve(vec);
 //Удалим из второго вектора повторяющиеся элементы
 unique (ve.begin(), ve.end());
 
 //Теперь пробегаемя по ve циклом
 //Берём из него значения и подсчитываем их колиество в vec
 int max= 0;
 int temp_;
 
 
 for (int i= 0; i< ve.size(); i++) {
  if ((temp_= count (vec.begin(), vec.end(), ve[i]))> max) {
   temp= ve[i];
   max= temp_;
  }
 }
  
 //Всё, больше всех повторяется число temp, а именно:
 printf  ("число %d повторяется %d раз\n", temp, max);       
 
  
 getchar ();
 return 0;
}
Добавлено через 1 минуту
А файл пусть такой: (форматирую наугад)
12
23
23
34
45
45
45
56
56
34
34
45
56
67
67
56
45
34
45
23
34
23
23
44
12
23
23
12
23
34
23
34
23
12
23
34


Добавлено через 38 секунд
Всё не получилось файл с данными, я не виноват!

Добавлено через 3 минуты
Да, надо не забыть файл-то закрыть в конце
C++
1
f.close ();
Yandex
Объявления
13.10.2011, 22:12     Обработка файлов на диске
Ответ Создать тему
Опции темы

Текущее время: 07:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru