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

Как в с/с++ можно подсчитать количество символов, обработанных в единицу времени - C++

Восстановить пароль Регистрация
 
[Федя]
9 / 9 / 1
Регистрация: 01.02.2010
Сообщений: 35
29.02.2012, 16:00     Как в с/с++ можно подсчитать количество символов, обработанных в единицу времени #1
Добрый день, у меня такой вопрос:
Допустим есть функция перебирающая большой текстовый файл и например подсчитывающая количество пробелов, или например заменяющая одни символы другими. Как можно во время работы данной функции отслеживать (записывать в переменную и выводить на экран) в реальном времени количество перебранных символов в единицу времени (за 1 сек, 5 сек, ...)? Т.е. добиться того, что бы например каждые пять секунд программа выводила на экран этот счетчик обработанных символов. Для этого есть какие-нибудь удобные стандартные библиотечные функции?

p.s: Использую VS 2008.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.02.2012, 16:00     Как в с/с++ можно подсчитать количество символов, обработанных в единицу времени
Посмотрите здесь:

Как подсчитать количество одинаковых символов?(C++) C++
C++ Как можно подсчитать количество слов в предложении?
C++ Подсчитать количество символов в файле
C++ В последовательности символов подсчитать количество букв и количество цифр
C++ подсчитать количество цифровых символов(0.9)
Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. C++
Как работает метод get и putback (Подсчитать количество символов ввода вплоть до значения '$') C++
C++ Как правильно можно узнать количество хранимых в строке символов?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
29.02.2012, 16:37     Как в с/с++ можно подсчитать количество символов, обработанных в единицу времени #2
Цитата Сообщение от [Федя
;2539501]Для этого есть какие-нибудь удобные стандартные библиотечные функции?
- да есть, наиболее подойдёт функция clock()
По ссылке есть код так что пример не привожу http://www.cplusplus.com/reference/c...y/ctime/clock/
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
29.02.2012, 16:58     Как в с/с++ можно подсчитать количество символов, обработанных в единицу времени #3
[Федя], например, так:

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
#include <iostream>
#include <fstream>
#include <algorithm>
#include <exception>
#include <stdexcept>
#include <iterator>
#include <boost/timer.hpp>
 
int main() {
    try {
        std::ifstream input_stream("input.txt");
 
        if (!input_stream.is_open()) {
            throw std::runtime_error("Error. Can't open file.'");
        }
        
        boost::timer timer;
        int number = 0;
        std::for_each(std::istream_iterator <char>(input_stream), std::istream_iterator <char>(), [&number, &timer](char symbol) {
            ++number;
            if ((timer.elapsed() == 1.0)) {
                std::cout << "processed: " << number << "\n";
                timer.restart();
            }
        } );
        
        std::cout << "processed: " << number << "\n";       
        
    } catch (const std::exception & exc) {
        std::cout << exc.what() << "\n";
    } 
    
    return 0;
}
Bash
1
2
3
4
5
6
7
8
nameless@l49-53-61:~/cpp/number_chars_realtime$ g++ -std=c++0x -I /usr/local/boost_1_49_0 main.cpp -o main
nameless@l49-53-61:~/cpp/number_chars_realtime$ ./main
processed: 3432516
processed: 6847698
processed: 10236657
processed: 13617228
processed: 16976598
processed: 19573008
Yandex
Объявления
29.02.2012, 16:58     Как в с/с++ можно подсчитать количество символов, обработанных в единицу времени
Ответ Создать тему
Опции темы

Текущее время: 20:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru