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

Проверка задачи. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считывание расположения (пути) файла с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread438321.html
Нужно реализовать в консольной программе открытие файла, путь которого будет считан с клавиатуры. Если файл находится в директории программы, то его ввести его название не составляет большого труда и программа этот файл без проблем читает, но когда дело подходит к вводу полного пути (например, C:\Games\2.bmp), то программа не читает файл. Это касается только ввода пути как аргумента командной...
C++ Получить данные из другой программы. Каким образом можно получить данные из другой программы? Другая программа: вывод реализован в свой класс, вроде не стандартный. gettext не срабатывает. ListView_GetItemCount возвращает ноль, правда и gellasterror тоже. spy++ это сообщение идентифицирует как wm_user+сколько то. Это значит, что нет обработчика? Максимум, что можно, это отправить wm_close и тогда этот элемент больше не работает.... http://www.cyberforum.ru/cpp-beginners/thread438310.html
numeric_limits<unsigned int>::digits C++
при запуске такой скомпилиной проги на 32р. системе должно вывести bits in int: 32 а при запуске на 64р. системе bits in int: 64 так ли это? #include <iostream> #include <limits> using namespace std; int main () { std::cout << "bits in unsigned int: " << std::numeric_limits<unsigned int>::digits << "\n"; system("pause");
C++ Построить содержательный граф
Построить содержательный граф операции сложения целых чисел с разными знаками.
C++ Проверка введенных данных: число/не число http://www.cyberforum.ru/cpp-beginners/thread438297.html
проходим try catch throw в универе. взял стаааааарую прогу и в нее вкладываю проверки введенных данных посредством try catch throw но у меня почему-то не выходит - не работает проверка цифра/не цифра, помогите советом и не пугайтесь, пожалуйста, большого кода, необходимо исправить лишь одну трай-кетч. см. функцию void MENU(); заранее спасибо! #include <iostream> #include <windows.h>...
C++ построить структурную схему управляющего автомата Для содержательного графа операции сложения построить структурную схему управляющего автомата с жёсткой логикой. подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
3011 / 1667 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
31.01.2012, 12:46     Проверка задачи.
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
149
150
151
152
153
154
155
156
157
/////////////////////////////////////////////////////////////////////////////////////////
//ФОРМАТ ВХОДНОГО ФАЙЛА
//В первой строке входного файша дано одно число l (2 <= l <= 10000) -
//ограничение на размер сообщения. Вторая строка содержит текст сообщения s. 
//Строка не пустая, содержит не более 10000 символов и заканчивается переводом строки, 
//который не входит в текст сообщения. Гарантируется, что в строке есть хотя бы одна 
//ссылка.
//
//ФОРМАТ ВЫХОДНОГО ФАЙЛА
//В первой строке выходного файла выведите сжатый текст. Во второй строке выведите "0",
//если сокращенное сообщение умещается в ограничение на длину сообщений. Иначе 
//выведите количество символов, на которое превышено ограничение на размер сообщения.
/////////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <deque>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string         T_str;
typedef T_str::size_type    T_pos;
typedef std::deque<T_str>   T_words;
/////////////////////////////////////////////////////////////////////////////////////////
void  get_links
    (
        const T_str&    message,
        T_words&        links
    )
{
    const T_str         LINK_HED   =   "http://";
    std::istringstream  ssin(message);
    T_str   cur_word;
    while(ssin >> cur_word)
    {
        if(cur_word.find(LINK_HED) == 0)
        {
            links.push_back(cur_word);
        }
    }
}
/////////////////////////////////////////////////////////////////////////////////////////
void  reduce_link
    (
        int         size_surplus,
        T_str&      message,
        T_words&    links
    )
{
    const T_str     ELLIPSIS    =   "...";    
 
    int             pref_len        
        =   std::max
                (
                    0,
                        int( links.front().size() ) 
                    -   size_surplus 
                    -   int( ELLIPSIS.size() )
                );
 
    T_pos           link_pos    =   message.find( links.front() );
 
    message.replace
        (
            link_pos + pref_len,
            links.front().size() - pref_len,
            ELLIPSIS
        );
    links.pop_front();
}
/////////////////////////////////////////////////////////////////////////////////////////
void  reduce_links
        (
            int         message_size_max,
            T_str&      message,
            T_words&    links,
            int&        size_surplus
        )
{
    const int   SIZE_SURPLUS_MIN    =   0;
 
    while(
                    (
                        size_surplus    
                            =   std::max
                                    (
                                        SIZE_SURPLUS_MIN, 
                                            int( message.size() ) 
                                        -   message_size_max
                                    )
                    )
 
                >   SIZE_SURPLUS_MIN
 
            &&  !links.empty()
         )
    {
        reduce_link
            (
                size_surplus,
                message,
                links
            );
    }
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    const T_str     IFILE_NAME          = "i.txt";
    const T_str     OFILE_NAME          = "o.txt";
 
    std::ifstream   ifile( IFILE_NAME.c_str() );
 
    int             message_size_max    = 0;
    ifile >> message_size_max;
    ifile.ignore();
 
    std::cout   << "message_size_max = "
                << message_size_max
                << std::endl;
 
    T_str   message;
    getline(ifile, message);
 
    std::cout   << "message = "
                << message
                << std::endl;
 
    T_words  links;
 
    get_links
        (
            message,
            links
        );
 
    int     size_surplus = 0;
 
    reduce_links
        (
            message_size_max,
            message,
            links,
            size_surplus
        );
 
    std::ofstream   ofile( OFILE_NAME.c_str() );
    ofile       << message
                << std::endl
                << size_surplus
                << std::endl;
 
    std::cout   << message
                << std::endl
                << size_surplus
                << std::endl;
}
 
Текущее время: 05:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru