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

Форматирование вывода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать программу для вычисления выходного значения функции http://www.cyberforum.ru/cpp-beginners/thread518021.html
Задание: разработать программу вычисления выходного значения функ-ции y=f(x1,x2,x3,x4). Тип входных и выходных данных, вид функции заданы в табл. 2. Выходное значение и входные должны отображаться на экране в виде: X1= X2= X3= X4= Y= Разработать функцию, которая автоматически заполняет массив из 10 наборов входных данных. Массив затем подвергается обработке, т.е. в цикле вычисляются...
C++ пропустите пожалуйста код через C++ Code Bloks! кто может переписать код с паскаля на С++,и пропустить код через С++ Code bloks,срочно нужны скрины для курсача!заранее благодарю! 1. Разработка программы для приближенного вычисления определенных интегралов, основаных на квадратурных формулах Ньютона-Котеса. program Curs; uses crt, graph; var i, n:integer; t:byte; a, b, eps, h:real; x, sum1, sum2, seps, m0, m1, m2, m3, m4:real; lf:text; http://www.cyberforum.ru/cpp-beginners/thread518015.html
C++ Отправка команд в консоль
Здравствуйте, мне надо отправить в консоль команду, взятую из Edit1, Edit2, Edit3. Немного почитал об этом, но не нашёл именно того, что искал. Я пытался работать с этой ф-ией: system("ping www.cyberforum.ru"); /* вот пинг */ но из Эдита вставить уменя н еполучилось помогите осуществить.
C++ Простые числа
Доброго дня. Данный код проверяет ,является ли число простым. Есть ли альтернативный алгоритм проверки ,более "компактный" ? #include <iostream> #include <math.h> using namespace std; int main() { int n; cin>> n;
C++ Перемещение по текстовому файлу. http://www.cyberforum.ru/cpp-beginners/thread517970.html
Задача стоит такая: Есть текстовый файл, где разные части текста отделены каким-либо спецсимволом (можно нумерованным, или не нумерованным - не важно). При этом разделительные символы встречаться в тексте не должны. Нужно, чтобы программа могла прочесть этот файл, и вывести на экран нужную часть текста. Допустим есть текстовый файл со следующим содержанием: %1 Текст 1.
C++ Новый шрифт и кодировка Всем привет! Я не знаю как правильно называется та вещь которая мне нужна, по этому не ругайте сильно если что:) У меня задача следующая.Есть некий текст(любой). Мне нужно создать свой набор символов и сопоставить ну например с Русским языком. Что то на подобие этого а = Ϟ, б = ϡ и так далее. В итоге получается непонятный набор символов. Как я понимаю мне нужно создать новую кодировку и... подробнее

Показать сообщение отдельно
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
13.03.2012, 23:36  [ТС]     Форматирование вывода
Если вдруг кому интересно, то вот весь код:

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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
// FrequencyOfWords.cpp : Defines the entry point for the console application.
//
#include <windows.h>
#include <process.h>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <conio.h>
#include <string>
#include <deque>
#include <set>
#include <map>
 
namespace FOW
{
    using namespace std;
 
    // ========================================== //
    // Список используемых переменных и объектов  //
    // ========================================== //
 
    string bad_simbols       = "$?\"\\“”‚„«»‹›\
           §…&%#!{}[],.:;?*№()<>/*+=0123456789";    // Символы, которые не должны содержаться в слове
 
    string delim(59, '-');                           // Строка-разделитель
    string file_in            =         "in.txt";    // Имя анализируемого файла по умолчанию
    string file_of_exceptions = "exceptions.txt";    // Имя файла со списком слов-исключений
    string file_out           =        "out.txt";    // Имя результирующего файла по умолчанию
 
    size_t words_counter(0);                         // Всего слов в тексте(счётчик)
    int min_word_size = 3;                           // Минимальный размер слова по умолчанию
    set<string> exc;                                 // Список слов-исключений (в нижнем регистре)
    map<string, double> words;                       // Список анализируемых слов (в нижнем регистре), слово - ключ к числу повторений
 
    volatile bool ThreadFlag = true;                 // Флаг для управления потоком progress, при false поток завершается
    streamoff all_f_size(1);                         // Размер файла
    streamoff current_f_size(1);                     // На данный момент прочитано из файла
 
    // ========================================== //
    //            Функциональная часть            //
    // ========================================== //
 
    unsigned _stdcall progress(void*)
    {
        setlocale(LC_ALL, "");
        cout << "Прогресс:\n " << flush;
        cout.precision(4);
 
        while(ThreadFlag)
        {
            cout << "        " << '\r' << flush; // Очищаем пред. вывод
            cout << (((100 / (long double)all_f_size) * current_f_size)) << "%" << flush << '\r';
            if (ThreadFlag) Sleep(100);
        }
 
        // Гарантирует отображение "100%", при малых размерах файла и быстрой работе
        cout << "        " << '\r' << flush;
        cout << 100 << "%\r" << flush;
 
        // Возвращаем переменные в исходное состояние для возможного перезапуска программы
        all_f_size     = (1);
        current_f_size = (1);
 
        return 0;
    }
 
    void read_exceptions(string& exc_file)
    {
 
        ifstream file(exc_file);
        if (!file)
        {
            cout << "\nФайл с исключениями не загружен." << endl;
            return;
        }
 
        string buf;
        while (file >> buf)
        {
            for_each(buf.begin(), buf.end(), [] (char& ch) {ch = tolower(ch);});
            exc.insert(buf);
        }
 
        cout << "\nПрочитано исключений: " << exc.size() << endl;
        file.close();
    }
 
    int  read_text_file(string& inp_file)
    {
        ifstream file(inp_file, ios::binary);
        if (!file)
        {
            cout << "\nФайл с текстом для анализа не загружен." << endl;
            return 1;
        }
 
        // Узнаём размер файла
        file.seekg (0, std::ios_base::end);
        all_f_size = file.tellg();
        file.seekg (0, std::ios_base::beg);
 
        string buf;
        while(file >> buf)
        {
            current_f_size = file.tellg();
 
            for_each(buf.begin(), buf.end(), [] (char& it) {it = tolower(it);});
 
            // Удаление паразитных знаков из кандитата на слово
            for (string::size_type pos = buf.find_first_of(bad_simbols); pos != string::npos;)
            {
                buf.erase(pos);
                pos = buf.find_first_of(bad_simbols);
            }
            // Если слово начинается с "'" или "—" или "-" - обрабатываем эту ситуацию
            if ((buf.begin() != buf.end()) && ((*buf.begin() == '\'') || (*buf.begin() == '—') || (*buf.begin() == '-'))) buf.erase(buf.begin());
            // То же самое, если оканчивается на "'" или "—" или "-"
            if ((buf.begin() != buf.end()) && ((*(--buf.end()) == '\'') || (*(--buf.end()) == '—') || (*(--buf.end()) == '-'))) buf.erase((--buf.end()));
 
            // Конец удаления паразитных знаков
 
            // Если слово не найдено в списке исключений и длиннее min_word_size
            if (!exc.count(buf) && (buf.size() >= (unsigned)min_word_size))
            {
                if (words.count(buf)) ++words[buf];
                words.insert(make_pair(buf, 1));
                ++words_counter;
            }
        }
        cout << "Найдено слов: " << words_counter << endl;
        file.close();
        return 0;
    }
 
    void write_results(string& outp_file)
    {
        ofstream file(outp_file);
 
        // Подготавливаем для вывода, высчитываем для каждого слова процент его употребления в тексте
        for (map<string, double>::iterator it = words.begin(); it != words.end(); ++it)
        {
            it->second = it->second / (double)words_counter;
        }
 
        // Собираем очередь и сортируем в порядке убывания процента повторения
        deque<pair<double, string>> buf;
        for (map<string, double>::iterator i = words.begin(); i != words.end(); ++i)
        {
            buf.insert(buf.begin(), make_pair(i->second, i->first));
        }
        sort(buf.rbegin(), buf.rend());
 
        // Сохраняем
        for_each(buf.begin(), buf.end(), [&file] (pair<double, string> it) 
        {
            static size_t count(0);
            file << '['<< ++count << "] " << it.second << '\t' << '\t' << '\t' << it.first << '%' << endl;
                
        });
 
        file.close();
 
    }
 
    void input_name()
    {
        bool fl = false;
        do
        {
            if (fl) cout << "\nИмя анализируемого файла некорректно, повторите ввод:" << ends;
            else cout << "\nИмя анализируемого файла:" << ends;
            cin >> file_in;
            fl = true;
        }
        while (!ifstream(file_in));
    }
    
    int _main()
    {
        system("cls");
        cout << " Программа анализирует частоту употребления слов в тексте." << endl << delim << endl;
 
        bool inp_err(false);
        do
        {
            if (inp_err) cout << "n должно быть > 0" << ends;
            cout << "\nСчитать словом буквенную последовательность от n символов, где n =" << ends;
            cin >> min_word_size;
            inp_err = true;
        }
        while (min_word_size < 1);
        inp_err = (false);
 
        char ch;
        do
        {
            if (inp_err) cout << " - (Выбор - y/n!)" << ends;
            cout << "\nЗадать имена используемых файлов вручную?(y/n)" << endl;
            ch = tolower(_getche());
            inp_err = true;
        }
        while (ch != 'y' && ch != 'n');
 
        inp_err = (false);
 
        if (ch == 'y')
        {
            input_name();
            cout << "Имя файла содержащего слова-исключения:" << ends; cin >> file_of_exceptions;
            cout << "Имя файла для вывода:" << ends; cin >> file_out;
        }
 
        read_exceptions(file_of_exceptions);
 
        HANDLE hThread = (HANDLE)_beginthreadex(NULL, NULL, progress, NULL, NULL, NULL);
 
        read_text_file(file_in);
 
        write_results(file_out);
 
        ThreadFlag = false;
        WaitForSingleObject(hThread, 120); // Даём время потоку завершиться
 
        ch = 'e';
        do
        {
            if (inp_err) cout << " - (Выбор - y/n!)" << ends;
            cout << "\nРасчёт завершён, проанализировать новый файл?(y/n)" << endl;
            ch = tolower(_getche());
            inp_err = true;
        }
        while (ch != 'y' && ch != 'n');
        inp_err = (false);
 
        int ret(0); // Возвращаемое значение
 
        if (ch == 'y') ret = true;
        else cout << "\n\n" << delim << endl;
 
        // Сбрасываем всё что рассчитывали, для возможного перезапуска с новыми данными
        ThreadFlag = true;
        exc.clear();
        words.clear();
        words_counter = 0;
        return ret;
    }
}
 
int main()
{
    setlocale(LC_ALL, "");
    while (FOW::_main());
    system("pause");
    return 0;
}
Проблема та же, нужно отформатировать вывод без костылей с пост обработкой файла результатов, возможно ли?
 
Текущее время: 02:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru