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

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

Войти
Регистрация
Восстановить пароль
 
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
#1

Сортировка строк - C++

20.04.2012, 20:43. Просмотров 641. Ответов 4
Метки нет (Все метки)

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include<iostream>
#include<stdio.h>
#include<time.h>
#include<vector>
#include<string.h>
#include<fstream>
using namespace std;
#define MAX_EMAILS 10000
 
bool EmailFilter(string email,string filter)
{
    size_t inp = email.find(filter);
    if(inp!=string::npos) return true;
    return false;
}
 
void main()
{
    setlocale(LC_ALL,"Rus");
    cout << "Начинаю..\n";
    ifstream ini0("filter.txt");//фильтр доменов
    int count=0;//переменная подсчета колва доменов
    while(ini0.good())
    {
        count++;
    }
        ini0.close();
    string cont;
    vector<string> bad(count);
    ifstream ini("filter.txt");
    for(int i=0;ini.good();i++)//запихиваем это все в массив
    {
        ini >> bad[i];
    }
    string email;//мыло
    int sk=0;//колво гудов
    //
    srand(time(NULL));
 
    char inp[20];//переменная, куда запилят данные из rand()
    itoa(rand(),inp,10);//запиливаем данные в inp
    ostream goo(inp,".txt");//создаем произвольный txt-файл
    *inp = '\0';//обнуляем инп
    //
    ifstream fch("email.txt");//все мыла
    while(fch.good())//приступаем к сортировке
    {
        fch >> email;//считываем мыло
        for(int i=0;i<count;i++)//будем чекать мыло с каждым фильтром
        {
            if(EmailFilter(email,bad[i]))//чекаем мыло на предмет нахождения в фильтре
            {
                if(sk<MAX_EMAILS)//если в файле с гуд мылами мы запилили больше 10к мыл, то создаем новый файл
                {
                    goo << email;//запиливаем мыло в гуд файл
                    sk++;//увеличиваем переменную. мы записали мыло в гуд
                }
                else//если больше 10к мыл то..
                {
                    goo.close();
                    sk=0;
                    itoa(rand(),inp,10);//запиливаем ранд в чар
                    ostream goo(inp,".txt");//создаем новый файл с рандомным именем
                    goo << email;//запиливаем туда гуд мыло
                    sk++;//увеличиваем
                }
            }
        }
    }
}
Ошибки начинаются с 33 строки (C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::ifstream" (или приемлемое преобразование отсутствует))
Весь гугл перерыл, но не нашел причину. И может кто-то предложит лучший вариант данной программы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 20:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка строк (C++):

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

Сортировка строк - C++
Помогите написать программу, которая читает строки из файла в массив строк, и выводит их на экран, отсортировав по названию, исключая...

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

Сортировка строк - C++
есть матрица. нужно отсортировать ее по сторокам. Т.е. строки должны идти в порядке возрастания. Сравниваем строки по первому элементу....

Сортировка строк - C++
Сколько букв &quot;У&quot; в введенном слове стоит на четных местах?

Сортировка строк - C++
Есть программа. Нужно в calc правильно сортировку написать что бы результаты в алфавитном порядке выбивало. #include &lt;iostream&gt; using...

4
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
20.04.2012, 21:20 #2
Цитата Сообщение от BuGi Посмотреть сообщение
ofstream goo(inp,".txt");//создаем произвольный txt-файл
букву f пропустили то
1
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
20.04.2012, 21:55  [ТС] #3
Цитата Сообщение от panicwassano Посмотреть сообщение
букву f пропустили то
Кстати да, спасибо) Только еще те ошибки
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
20.04.2012, 22:07 #4
Цитата Сообщение от BuGi Посмотреть сообщение
ini >> bad[i];
33 строку и цикл лучше запистаь так
C++
1
2
3
string word;
while(ini >> word)
bad.pushback(word);
1
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
21.04.2012, 20:18  [ТС] #5
Почему просто нельзя записать так? На примерах в инете всегда работало и свободно закидывало строку.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<iostream>
#include<stdio.h>
#include<time.h>
#include<vector>
#include<string.h>
#include<fstream>
using namespace std;
#define MAX_EMAILS 10000
 
bool EmailFilter(string email,string filter)
{
    size_t inp = email.find(filter);
    if(inp!=string::npos) return true;
    return false;
}
 
void main()
{
    setlocale(LC_ALL,"Rus");
    cout << "Начинаю..\n";
    ifstream ini0("filter.txt",ifstream::in);//фильтр доменов
    int count=0;//count(num_iter(ini),num_iter());//переменная подсчета колва доменов
    string temp_cnt;
    while(ini0.good())
    {
        ini0 >> temp_cnt;
        count++;
    }
 
    string cont;
    vector<string> bad(count);
    ifstream ini("filter.txt",ifstream::in);
    for(int i=0;ini.good();i++)//запихиваем это все в массив
    {
        ini >> bad[i];
    }
    string email;//мыло
    int sk=0;//колво гудов
    //
    srand(time(NULL));
 
    char inp[20];//переменная, куда запилят данные из rand()
    itoa(rand(),inp,10);//запиливаем данные в inp
    string inp_s = string(inp); inp_s+=".txt";
    ofstream goo(inp_s);//создаем произвольный txt-файл
    *inp = '\0';//обнуляем инп
    //
    ifstream fch("email.txt");//все мыла
    while(fch.good())//приступаем к сортировке
    {
        fch >> email;//считываем мыло
        for(int i=0;i<count;i++)//будем чекать мыло с каждым фильтром
        {
            if(EmailFilter(email,bad[i]))//чекаем мыло на предмет нахождения в фильтре
            {
                if(sk<MAX_EMAILS)//если в файле с гуд мылами мы запилили больше 10к мыл, то создаем новый файл
                {
                    goo << email;//запиливаем мыло в гуд файл
                    sk++;//увеличиваем переменную. мы записали мыло в гуд
                }
                else//если больше 10к мыл то..
                {
                    goo.close();
                    sk=0;
                    itoa(rand(),inp,10);//запиливаем ранд в чар
                    inp_s=string(inp);
                    inp_s+=".txt";
                    ofstream goo(inp_s);//создаем новый файл с рандомным именем
                    goo << email;//и запиливаем туда гуд мыло
                    sk++;//увеличиваем
                }
            }
        }
    }
}
отредактировал код

Добавлено через 21 час 20 минут
UP
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2012, 20:18
Привет! Вот еще темы с ответами:

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

Сортировка строк - C++
Камрады, посмотрите, пжл, где я туплю. Не сортируется массив, эдакая трабла: #include &lt;iostream&gt; using namespace std; int main() ...

Сортировка строк - C++
#include &quot;stdafx.h&quot; #include &quot;string.h&quot; int _tmain(int argc, _TCHAR* argv) { char s,s1,s2; int i,j,l,k=0,a1,a2; ...

Сортировка строк - C++
Берем матрицу (для проверки) 1 5 7 4 4 2 8 9 3 На выходе получаем (см. скриншот) 1 5 7 8 9 3 4 4 2 А должно быть 8 9 3


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

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

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