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

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

Войти
Регистрация
Восстановить пароль
 
__vasilich__
2 / 2 / 0
Регистрация: 17.05.2012
Сообщений: 40
#1

ПОТОКОВЫЕ КЛАССЫ С++ - C++

29.05.2014, 14:15. Просмотров 426. Ответов 2
Метки нет (Все метки)

Всем здравствуйте!
Опять время сессии , и опять обнаглевший студент просит помощи, в надежде что кто-либо откликнится)
нужно на завтро сделать лабу, вот задание

Напишите программу, которая читает файл и печатает в алфавитном порядке каждую группу слов, которые совпадают по первым семи символам, но отличаются где-то дальше

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

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
while (length(S)>=7) do
{
      for (i==0; i<=length(s); i++)
      {
          if (s[i]=='') 
          {
                        s=s-s[i];
                        k=k+1;
          }
          while (s[i]!='') do
          {
                b=0;
                if (i<7)
                {
                    if (s[i]==s[i+1])
                    {
                        del=del+s[i];
                        ss=ss+s[i];
                        i=i+1;             
                        if (i==7)            
                        ss=ss+s[i];            
                                     
                    } 
                    else
                    {
                        b=1;
                        ss='';
                        del=del+s[i]+s[i+1];
                        s=s-del;
                        del='';
                    }
                } 
                if (b!=1)
                ss=ss+s[i];
          }
          if (b!=1)
             {
                   s=s-ss;
                   str[k]=ss;
                   ss='';
             }
      }
}
s это строка получаемая из исходного файла, str массив слов, del-удаляет не подходящии слова из строки(хотя у меня тут похоже удаляет только буквы, не доходя до конца слова ) ss - собственно слово, к - я вставил чтоб посчитать количество слов по пробелам, хотя тут явно что-то не так , походу пробелов будет больше чем слов в массиве, надо еще подумать.
b- в качестве флага

вобщем работу надо сдать завтра, и не факт что я таки запилю ее, скорей таки не запилю)
тему создал ибо есть маленький шанс что все же кто-то поможет. Всем спасибо за внимание
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 14:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ПОТОКОВЫЕ КЛАССЫ С++ (C++):

потоковые классы - C++
напишите пожалуйста, основные методы ввода и вывода в потоковых классах

Потоковые классы - C++
Привет все программистам! Помогите плиз с задание: Реализуйте модуль, подключение которого перегружает операции помещения в поток...

Потоковые классы. Работа с файлами - C++
Добрый день, фомурчане. Очень нужна ваша помощь. Есть программа, которая находит количество предложений с восклицательным знаком. Нужно...

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

Потоковые итераторы - C++
Я новичок, прошел тему &quot;STL&quot; по учебнику Лафоре. Пишу в Code::Blocks, поставить другую IDE возможности мало. При попытке работы с...

Потоковые и обратные итераторы - C++
В MSDN написано:&quot;Существующие контейнеры стандартной библиотеки шаблонов также задают типы reverse_iterator и const_reverse_iterator и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
29.05.2014, 20:27 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/////////////////////////////////////////////////////////////////////////////////////////
//Напишите программу, которая читает файл и печатает в алфавитном порядке каждую группу слов, 
//которые совпадают по первым семи символам, но отличаются где-то дальше
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <conio.h>
#include <iostream>
#include <iterator>
#include <fstream>
#include <set>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
/////////////////////////////////////////////////////////////////////////////////////////
int const   HEAD_LEN    =   7;
/////////////////////////////////////////////////////////////////////////////////////////
bool  equal_heds
    (
        T_str   const   &   L,
        T_str   const   &   R
    )
{
    return      L.size()                    >=  HEAD_LEN
            &&  R.size()                    >=  HEAD_LEN
            &&  L.substr( 0, HEAD_LEN )     ==  R.substr( 0, HEAD_LEN );
}
/////////////////////////////////////////////////////////////////////////////////////////
struct  T_less_heads
{
    bool  operator()
        (
            T_str   const   &   L,
            T_str   const   &   R
        )
    {
        return      !equal_heds(L, R)
                &&  L   <   R;
    }
};
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::multiset   < T_str,    T_less_heads    >   T_strings;
/////////////////////////////////////////////////////////////////////////////////////////
int  main()
{
    std::locale::global(std::locale(""));
    std::ifstream   ifile("input.txt");
 
    if( !ifile )
    {
        std::cout   <<  "Файл не найден."
                    <<  std::endl;
    }
 
    T_strings   strings;
 
    std::copy
        (
            std::istream_iterator<T_str>    ( ifile ),
            std::istream_iterator<T_str>    (),
            std::inserter
                (
                    strings,
                    strings.begin()
                )
        );
 
    T_strings::iterator     lower_bound_it;
    auto                    upper_bound_it  =   strings.begin();
 
    do
    {
        lower_bound_it  =   upper_bound_it;
        upper_bound_it  =   strings.upper_bound( *lower_bound_it );
 
        std::copy
            (
                lower_bound_it,
                upper_bound_it,
                std::ostream_iterator<T_str>(std::cout, "\n")
            );
 
        std::cout   <<  std::endl;
    }
    while   (
                upper_bound_it  !=  strings.end()
            );
 
    getch();
}
2
__vasilich__
2 / 2 / 0
Регистрация: 17.05.2012
Сообщений: 40
31.05.2014, 20:37  [ТС] #3
Большое спасибо!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2014, 20:37
Привет! Вот еще темы с ответами:

Потоковые итераторы - не работает код - C++
Выношу на ваш суд следующий код, взятый мной из учебника Лафоре int main() { setlocale( LC_ALL, &quot;rus&quot; ); list&lt;int&gt;...

Что такое потоковые манипуляторы - C++
Как то удивительно странно все авторы обходят стороной вопрос, что такое потоковые манипуляторы, как то endl, setw, dec и так далее. Чем...

Перегруженные потоковые операторы при наследовании - C++
В базовом классе есть перегружены операторы взять из потока и вывести в поток, в производном классе они также перегружены. Как мне вызвать...

"потоковые переменные"... или что-то в этом роде... - C++
Есть ли что-нибудь типо потоковых переменных?... (нужно создать поток, в который можно писать с одной стороны и считывать с другой...


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

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

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