Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 25.01.2012, 21:10   #1
dcPEOP
Новичок
 
Регистрация: 25.01.2012
Сообщений: 2
Репутация: 10
По умолчанию <vector>

Код:

#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;
}

Консоль при запуске висит, почему так происходит?
dcPEOP вне форума   Ответить с цитированием
Старый 25.01.2012, 21:58   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,957
Репутация: 6832
По умолчанию

А ты не хочешь пройтись по программе трассировкой? Выяснишь на каком операторе вис.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 26.01.2012, 11:28   #3
dcPEOP
Новичок
 
Регистрация: 25.01.2012
Сообщений: 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А ты не хочешь пройтись по программе трассировкой? Выяснишь на каком операторе вис.
Нашел:

Код:

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
 
void smb_in(char *name);
 
int main()
{
		char *name;
		cout << "Enter the path: ";
		cin >> name; smb_in(name);
        return 0;
}
 
void smb_in(char *name)
{
		ifstream in(name, ios::in | 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.at(i)++;
        }
        
        in.close();                                                             //Закрываем файл
 
        for (int j = 0; j < smb_name.size(); j++)								//Выводим собранную базу на экран
			cout << smb_name[j] << " - " << smb_n[j] << endl;
}

Код:

ios::in

- это важно d msvs2010
dcPEOP вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос в vector vashaira Помощь студентам 0 01.12.2011 17:37
class vector Proghelper Помощь студентам 5 09.12.2010 22:31
#include <vector> GBAXA Visual C++ 12 15.08.2010 11:25
vector NiCola999 Помощь студентам 5 26.02.2010 09:37
std::vector ciaonataha Общие вопросы C/C++ 1 10.05.2009 15:50


21:19.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru