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

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

Войти
Регистрация
Восстановить пароль
 
Ольга08
Сообщений: n/a
#1

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

10.11.2012, 21:40. Просмотров 832. Ответов 3
Метки нет (Все метки)

Помогите решить, я совсем не понимаю как сделать
задача такая:
Вариант 8
с помощью текстового редактора создать файл, содержащий текст, длина которого
не превышает 1000 символов (длина строки текста не должна превышать
70 символов).
Имя файла должно иметь расширение DAT.
Написать программу, которая:
• выводит текст на экран дисплея;
а определяет количество символов в самом коротком слове;
• по нажатию произвольной клавиши поочередно выделяет каждое слово текста,
содержащее минимальное количество символов.

вот что сделала я

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
void words(char *s, int posBegin,int posEnd){ if(posBegin-posEnd==1) return;
    for(int i=posBegin;i<=posEnd;i++)cout<<s[i];cout<<'\n';
    }
 
void forr(char *s){
    for(int i=0,k=0;s[i];i++){
        if(s[i]==' ' || s[i]==13){
            words(s,k,i);k=i++;
        }
    }
};
 
int main()
{setlocale (LC_ALL, ".ACP");
 
 
 
 
    ifstream f("text.DAT", ios::binary);
    f.seekg(0,ios_base::end);
    int i=f.tellg();
    f.seekg(0,ios_base::beg);
    char *s=new char[i];
    f.read(s,i);
    f.close();
    s[i+1]=0;
    forr(s);
    
    cin.get();
    //delete s;
    
 
 
    system ("pause");
    return 0;
    
}
ткперь думаю как изменить ф-цию words что бы он считал длину слова и сравнивал. А как выделять слова я вообще не понимаю
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 21:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести текст на экран дисплея (C++):

Определить и вывести на экран дисплея минимальное значение. - C++
Из величин, определяемых выражениями a=sinx, b=cosx, c=ln|x| при заданном х, определить и вывести на экран дисплея минимальное значение.

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

Дописать в конец a.jpeg некий секретный текст. Вывести этот текст на экран - C++
Как мне стало известно все .jpeg оканчиваются на маркер FFD9. Его мы и будем искать при выводе результата. Сначала откроем файл на...

Вывести на экран слова, из которых состоит текст - C++
Помогите пожалуйста решить Вывести на экран слова, из которых состоит текст.

Как в win32 app. вывести текст на экран? - C++
Как в win32 application вывести текст на экран?Подскажите несколько лучших,на ваш взгляд вариантов.Мне необходимо каждую секунду знать...

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

3
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.11.2012, 04:37 #2
Если 0 добавляете, то так правильнее будет:
C++
1
char *s=new char[i + 1];
0
Ольга08
Сообщений: n/a
11.11.2012, 08:43 #3
а что мне это даст, он выводит все слова с файле, а мне нужно чтоб минимальные выводил и считал колличество символов, вот как это в функцию прописать я не понимаю. Спасибо за совет, я там поправлю
Ryk
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 20
Завершенные тесты: 1
21.01.2013, 17:50 #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
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2013, 17:50
Привет! Вот еще темы с ответами:

Из заданного файла вывести на экран текст с нумерацией строк - C++
Дан текстовый файл из нескольких строк, вывести его текст на экран с нумерацией строк.

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

Дан текст вывести на экран слова впорядке уменьшения их длины - C++
Дан текст вывести на екран слова впорядке уненшения их длины

Cчитать текст из файла и вывести на экран предложения, начинающиеся с тире - C++
Помогите!!!!!!!! Жизненно важно!!!! НЕОБХОДИМА программа которая считывает текст из файла и выводит на экран предложения, начинающиеся...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
21.01.2013, 17:50
Ответ Создать тему
Опции темы

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