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

Вывести текст на экран дисплея - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Циклический алгоритм http://www.cyberforum.ru/cpp-beginners/thread694114.html
помогите составить программу для цикла Выкладывайте задание в текстовом виде в теме.
C++ Задачи по циклах 1)Написать функцию, которая по целым числом определяет старшую цифру его десятичной записи. С++; 2)http://www.cyberforum.ru/cpp-beginners/thread693808.html Правила: одна тема - один вопрос. http://www.cyberforum.ru/cpp-beginners/thread694109.html
Что означает "нарушение доступа (ошибка сегментации)" C++
отладчик выдает : нарушение доступа(ошибка сегментации) что это означает??? в чем суть ошибки???
Динамический массив - ошибка на 4-ой итерации C++
Подскажите новичку пожалуйста в чём проблема ? вылетает ошибка на 4-ой итерации float **answers = new float*; answers = new float; do { numstep++; if (numstep == 1) { delete...
C++ Создать класс для обработки информации об инструментах http://www.cyberforum.ru/cpp-beginners/thread694076.html
Только начали изучать классы. Немного недопонимаю я их. Задача: Создать класс для обработки информации об инструментах. Сведения об инструменте содержат название, размер, материал, из которого...
C++ Написать программу, выдающую список всех поступивших товаров с их количеством в порядке возрастания шифров Дан файл, содержащий информацию о поступлении товаров на склад. Структура записи файла: шифр товара, наименование товара, дата поступления, количество единиц товара. Записи в файле не... подробнее

Показать сообщение отдельно
Ryk
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 20
Завершенные тесты: 1
21.01.2013, 17:50
Делал похожее задание, но только для слов максимальной длины.
Код кривой, но рабочий. В моем файле слова разделялись пробелами, так что я знаки препинания не обрабатывал.
Надеюсь поможет
Кликните здесь для просмотра всего текста
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
#include <fstream>
#include <windows.h>
#include <conio.h>
 
using namespace std;
 
void ReadOut(char *fname)
{
    char word[30];
    int tmp=1;
    char ch=' ';
    char space=' ';
    char nxtstr='\r';
    char nxtstr1='\n';
    char endoffile='$1A';
    int dlina=0,dlinamax=0;//Длина, максимальная длина
    int pos=0,endpos=0;
    int flagsl=0;
    int kolmaxslov=0;// Число максимальных по длине слов
    int curmaxslovo=0;// Конкретное максимальное по длине слово
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
    // Открываем файл:
    ifstream Fin(fname, ios::in | ios::binary );//ios::_Nocreate);
 
    // Проверка файла на существование:
    if (Fin.fail())
    {
        cerr << "File is not found" << endl;
        exit(1);
    }
 
    Fin.seekg(0, ios::beg);//Начало файла
    Fin.seekg(0, ios::end);
    endpos=Fin.tellg();
    Fin.seekg(0, ios::beg);//Начало файла
    
    while ( Fin.get(ch) )//Ищем самую большую длину слова
    {
        if ((ch==space)||(ch==nxtstr)||(ch==nxtstr1)||(pos==endpos))
        {   
            if (dlina>=dlinamax) {dlinamax=dlina;}
            dlina=0;
        }
        else dlina++;
    }
 
    Fin.clear();
    Fin.seekg(0, ios::beg);//Начало файла
    ch=' ';
    dlina=0;
    while(Fin.get(ch))//Находим количество слов максимальной длины
    {
 
        if ((ch==space)||(ch==nxtstr)||(ch==nxtstr1)||(pos==endpos))
        {   
            if (dlina==dlinamax) 
            {
                kolmaxslov++;
            }
            dlina=0;
        }
        else dlina++;
    }
 
    Fin.clear();
    Fin.seekg(0, ios::beg);//Начало файла
    ch=' ';
    dlina=0;
    int i=0;
    if(kolmaxslov!=0)
    {
        for(int k=0; k!=kolmaxslov;k++)
        {
            while(Fin.get(ch))
            {
                word[i]=ch;
                i++;
                pos=Fin.tellg();
                if ((ch==space)||(ch==nxtstr)||(ch==nxtstr1)||(pos==endpos))
                {   
                    if (dlina==dlinamax) 
                    {
                        
                        if (curmaxslovo==k)
                        {
                            
                            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
                            for(int j=0;j<i;j++)
                            {
                                cout<<word[j];
                            }
                            i=0;
                            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
                        }
                        else
                        {
                            for(int j=0;j<i;j++)
                            {
                                cout<<word[j];
                            }
                            i=0;
                        }
                        curmaxslovo++;
                    }
                    else
                    {
                        for(int j=0;j<i;j++)
                            {
                                cout<<word[j];
                            }
                            i=0;
                    }
                    dlina=0;
                }
                else dlina++;
            }
 
            getch();
            system("cls");
            Fin.clear();
            Fin.seekg(0, ios::beg);//Начало файла
            curmaxslovo=0;
        }
    }
 
 
 
 
    setlocale(LC_ALL, "rus");
    cout<<endl<<"Количество слов максимальной длинны "<<kolmaxslov<<endl;
    cout<<"Максимальная длина слова "<<dlinamax<<endl;
    Fin.close();//Закрываем файл
 
}
 
int main()
{
    // Имя файла:
    char *name = "file.DAT";
    
    // Чтение файла:
    ReadOut(name);
 
    cout << "\n\n";
    system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru