Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
hu2
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 9
#1

Проблема с <vector> - C++

25.01.2012, 15:15. Просмотров 1381. Ответов 24
Метки нет (Все метки)

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
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
 
void smb_in();
 
int main()
{
    smb_in();
    return 0;
}
 
void smb_in()
{
    ifstream in("text.txt", ios::binary);                   //Открываем в бинарном режиме файл для чтения
    vector<char> smb_name;                                  //Создаем вектор для "названия" символов
    vector<unsigned long> smb_n;                            //Вектор для подсчета количества символов
 
    while (!in.eof())                                       //Пока не достигнем конца файла
    {
        char smb_cur;
        in.get(smb_cur);                                    //Текущий символ в цикле
        
        int i = 0;
        for (i = 0; i <= smb_name.size(); i++)
            if (smb_name[i] != smb_cur) break;              //Если находим в векторе совпадающий символ прерываем цикл
 
        if (i == smb_name.size())                           //Если символ не найден, то ...
        {
            smb_name.push_back(smb_cur);                    //Добавляем в базу его "имя"
            smb_n.push_back(1);                             //И кол-во повторений (1)
        }
        else smb_n[i]++;
    }
    
    in.close();                                             //Закрываем файл
 
    for (int j = 0; j <= smb_name.size(); j++)              //Выводим собранную базу на экран
        cout << smb_name[j] << ' ' << smb_n[j] << endl;
}
После компиляции и запуска вылетает ошибка, почему это происходит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2012, 15:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблема с <vector> (C++):

Проблема с vector - C++
Объявляю булевый вектор vector&lt;bool&gt; used; затем заполняю его false'ами for (int i=0; i&lt;n; i++) used = false; выходит...

Проблема с vector - C++
Здравствуйте! Есть класс BucketSort: #ifndef BUCKETSORT_H #define BUCKETSORT_H #include &lt;vector&gt; class BucketSort { ...

Проблема с итератором в <vector> - C++
Всем привет. Помогите пожалуйста решить проблему: У меня существует класс class Book { string author,title,publishing; int...

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main - C++
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt;...

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) - C++
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...

vector<Struct2{int,vector<struct1>}> или множественное наследование ... - C++
Здравствуйте! Помогите, пожалуйста. Есть такие данные: typedef struct { int x; int y; // координаты...

24
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
26.01.2012, 21:44 #16
можно через мар вот так сделать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<map>
#include<fstream>
void sm_in();
int main(){
sm_in();
return 0;
}
 
void sm_in(){
std::map<char,int> c;
ifstream in("text.txt");
while(!in.eof)
++c[(char)in.get()];
in.close();
std::map<char,int>::const_iterator end=c.end();
for(std::map<char,int>::const_iterator i=c.begin();i!=end;i++)
std::cout<<i->first<<"\t"<<i->second<<std::endl;
}
0
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 670
26.01.2012, 22:11 #17
А почему компилятор ругается на

1 IntelliSense: identifier "ifstream" is undefined c:\users\администратор\documents\visual studio 2010\projects\c++\console\p1514\vector\vector\vector.cpp 12 1 Vector
Заранее огромное спасибо.
0
NoMasters
Псевдослучайный
1764 / 1107 / 73
Регистрация: 13.09.2011
Сообщений: 3,143
26.01.2012, 22:14 #18
std::ifstream
2
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 670
26.01.2012, 22:19 #19
Спасибо за ответ, но сейчас другая ошибка указывает на строку:
C++
1
while(!in.eof)
1 IntelliSense: a pointer to a bound function may only be used to call the function c:\users\администратор\documents\visual studio 2010\projects\c++\console\p1514\vector\vector\vector.cpp 13 10 Vector
0
NoMasters
Псевдослучайный
1764 / 1107 / 73
Регистрация: 13.09.2011
Сообщений: 3,143
26.01.2012, 22:21 #20
C++
1
while(!in.eof())
1
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 670
26.01.2012, 22:27 #21
Спасибо за ответ, ошибок при компиляции нет, но когда запускаю программу появляется черное окно консоли, мигает белый курсор - результата ни какого?
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.01.2012, 22:35 #22
http://www.cyberforum.ru/cpp-beginners/thread10807.html
0
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 670
26.01.2012, 22:40 #23
дело не в этом про system("pause") и так далее, чтобы консоль не закрывалась сразу же я знаю, окно консоли висит пустое, на экране нет ни каких результатов.
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.01.2012, 22:44 #24
ну значит не выполняется код в теле цилка:
C++
1
2
        for (int j = 0; j <= smb_name.size(); j++)                              //Выводим собранную базу на экран
                cout << smb_name[j] << ' ' << smb_n[j] << endl;
что-то криво сделали. и вам тоже посоветую освоить дебагер. сами сможете ошибки находить.
там наверняка элементарная вещь какая-нибудь, нужно лишь дебагером пройтись.
0
hu2
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 9
27.01.2012, 08:05  [ТС] #25
Цитата Сообщение от isaak Посмотреть сообщение
дело не в этом про system("pause") и так далее, чтобы консоль не закрывалась сразу же я знаю, окно консоли висит пустое, на экране нет ни каких результатов.
Это значит, что цикл зациклился)) сори за тавтологию вот у меня там такая же хрень была из-за того, что in.get() постоянно первый символ файла читал и поэтому !in.eof() все время выполнялось
0
27.01.2012, 08:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2012, 08:05
Привет! Вот еще темы с ответами:

Ошибка [Linker error] undefined reference to `Vector::Vector(int)' - C++
Добрый день. Делал по методички, и почему-то валятся ошибки... файл lab9_main.cpp #include &lt;iostream&gt; #include &quot;Vector.h&quot; int...

Как корректно скопировать vector в vector внутри класса - C++
Есть класс принимающий в конструкторе vector: class test { test(std::vector&lt;std::string&gt; codeList); ~test(); ...

Указатель на объект вектор в векторе vector < vector<int>* >* - C++
Дело касается вот чего, есть такая вот незатейлевая вещь. #include &lt;vector&gt; #include &lt;iostream&gt; int main( ) { using...

Записать числа из файла в двумерный массив или вектор вроде такого vector<vector<int>> - C++
Добрый день, подскажите пожалуйста как лучше и проще считывать файл. в файле записаны числа, разделенные пробелами и запятыми: 1, 2, 3,...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Опции темы

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