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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Samchik
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 15
Завершенные тесты: 1
#1

Запись таблицы частот из файла в список или ассоциативный массив - C++

20.10.2016, 16:38. Просмотров 187. Ответов 6
Метки нет (Все метки)

Всем привет.
Имеется запись таблицы частот в лист.
C++
1
2
3
4
5
6
7
8
9
10
11
12
list < Tree* > Read::frequence(map<char, int> &m) {
    list < Tree* > t;
    ofstream fout("frequence.txt");
    for (map<char, int>::iterator i = m.begin(); i != m.end(); i++) {
        fout << i->first << ":" << i->second << endl;
        Tree *p = new Tree;
        p->c = i->first;
        p->a = i->second;
        t.push_back(p);
    }
    return t;
}
Нужно считать с файла и записать таблицу частот в список или ассоциативный массив.
Файл выглядит так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 :6
!:4
':1
;:1
H:1
I:1
M:1
S:1
T:1
d:2
e:1
g:1
h:1
i:1
l:3
m:1
n:1
o:4
r:3
s:2
t:4
w:1
y:2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2016, 16:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись таблицы частот из файла в список или ассоциативный массив (C++):

Запись из файла *.txt или memo в массив - C++
Добрый вечер, постораюсь изложить свою проблему логично и лаконично) Вообщем суть вот в чем: Есть файл *.txt, в него записаны числа в...

Ассоциативный массив "ключ - список" - C++
С помощью stl нужно создать ассоциативный массив &quot;ключ&quot; = &quot;список&quot; Ассоциативный массив - это unordered_map само собой Нужно чтобы...

Линейный односвязный (однонаправленный) список, запись и чтение из файла - C++
нужна помощь в организации чтения и записи списка из файла, #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt;...

Ассоциативный массив - C++
Добрый день. Нужно заполнить map &lt;char,vector&lt;int&gt; &gt; из файла, содержание которого: 1 f 2 g 5 c Вот моя программа #include...

ассоциативный массив - C++
мне нужно написать прграмму с динамическими шаблонными структурами, а именно с ассоциативным массивом, но что он из себя представляет, я...

Ассоциативный массив - C++
Задача будет такая: с платы (AFDX) считываются данные в таком формате: индекс 9 байт и сами данные 1500байт. &quot;Индекс&quot; на самом деле в себя...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
20.10.2016, 17:21 #2
C++
1
2
3
4
5
6
7
8
9
10
11
map<char, int> f;
char c;
int n;
ifstream fin("frequence.txt");
while (fin.get(c))
{
    fin.get(); // ':'
    fin >> n;
    fin.get(); // '\n'
    f[c] = n;
}
Samchik
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 15
Завершенные тесты: 1
25.10.2016, 00:06  [ТС] #3
то есть он будет отдельно записывать символ и отдельно частоту ?

Добавлено через 1 минуту
nmcf, то есть он будет отдельно записывать символ и отдельно частоту ?
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
25.10.2016, 00:09 #4
При чём тут запись? Символ считывается в условии цикла, а число в 8-й строке.
Samchik
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 15
Завершенные тесты: 1
25.10.2016, 00:19  [ТС] #5
nmcf,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Read::OpenFreq(string freq, map<char, int> h) {
    ifstream F(freq);   
    char c;
    int n;
    if (F.is_open()) {
        while (F.get(c))
        {
            F.get(); // ':'
            F >> n;
            F.get(); // '\n'
            h[c] = n;
        }
    }
    else
    {
        cout << "Ошибка открытия файла";
    }
    F.close();
}
что-то я не пойму. сразу перескакивает этот цикл и выходит
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
25.10.2016, 08:14 #6
Цитата Сообщение от Samchik Посмотреть сообщение
сразу перескакивает этот цикл и выходит
Как ты это определил?

Массив (пустой) должен по ссылке передаваться или быть возвращаемым значением.
C++
1
void Read::OpenFreq(string freq, map<char, int> &h)
Samchik
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 15
Завершенные тесты: 1
26.10.2016, 19:58  [ТС] #7
nmcf, ранее в функции был создан map, я его передаю в функцию. а определил перескок по отладке

Добавлено через 19 часов 58 минут
nmcf, Чувак,ты боженька... я доделал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2016, 19:58
Привет! Вот еще темы с ответами:

Ассоциативный массив - C++
Добрый день. Есть массив map&lt;char,vector&lt;bool&gt; &gt; table; Как пройтись по этому массиву итератором, чтобы вывести содержимое на экран? ...

Ассоциативный массив - C++
Простите за нубский вопрос, но гугл мне не помог( Нужно реализовать список радиочастот и названий радио. Получается нужен...

Ассоциативный массив - C++
Пытаюсь написать что-то вроде ассоциативного массива, но проверка показывает, что не всё правильно добавляется (метод Add). void...

Считывание файла в массив и запись нового файла - C++
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.10.2016, 19:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru