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

Функции для работы с текстовыми файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ qsort C++ http://www.cyberforum.ru/cpp-beginners/thread80445.html
Помогите, плиз,разобраться с этой функцией, я прогу написала, но мало чего понимаю в ней, я написала в трех файлах, так и выкладываю. #ifndef _STRUCT_H #define _STRUCT_H struct Data { ...
C++ Работа с файлами Задача: в файле Y1 задана матрица вещественных чисел. Сформировать файл Y2, в котором строки матрицы упорядочены по убыванию элементов первого столбца........Кому не сложно, помогите в написании этой... http://www.cyberforum.ru/cpp-beginners/thread80439.html
C++ Рекурсия: определить, допускается или нет произвольная строка s заданной маской m
Маска файла представляет собой строку, состоящую из символов, допустимых в имени файла, и знаков ‘?’ и ‘*’. Вопросительный знак можно заменять на произвольный символ, допустимый в имени файла, а ‘*’...
Написать процедуру сортировки строк матрицы в порядке неубывания максимального по модулю элемента C++
Написать процедуру сортировки строк матрицы в порядке неубывания максимального по модулю элемента. Оформить как функцию вычисление максимального по модулю элемента строки и как процедуру –...
C++ Составить словарь всех слов, встречающихся в заданном текстовом файле. http://www.cyberforum.ru/cpp-beginners/thread80435.html
Составить словарь всех слов, встречающихся в заданном текстовом файле. Для каждого слова определить сколько раз оно встречается. Помогите пожалуйста...
C++ Выяснить, имеется ли среди чисел n, n+1, ..., 2n близнецы Дано натуральное число n. Выяснить, имеется ли среди чисел n, n+1, ..., 2n близнецы, т.е. простые числа, разность между которыми равна двум. (Определить процедуру, позволяющую распознать простые... подробнее

Показать сообщение отдельно
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
27.12.2009, 12:47
***Иришка***,

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
#include <algorithm>
#include <functional>
#include <iostream>
#include <fstream>
#include <iterator>
#include <locale>
 
struct bit_counter : public std::unary_function<unsigned, bool>
{
    bit_counter(size_t n) : n_(n) {}
    bool operator()(unsigned v) const
    {
        v = (v & 0x55555555ul) + ((v >> 1) & 0x55555555ul);
        v = (v & 0x33333333ul) + ((v >> 2) & 0x33333333ul);
        v = (v + (v >> 4)) & 0x0f0f0f0ful;
        return ((v + (v >> 8) + (v >> 16) + (v >> 24)) & 0x3f) == n_;
    }
 
    const size_t n_;
};
 
template<typename _InIt, typename _Ty, typename _Pred1>
_Ty accumulate_if(_InIt _First, _InIt _Last, _Ty _Val, _Pred1 _Func)
{
    for ( ; _First != _Last; ++_First)
        if (_Func(*_First))
            _Val = _Val + *_First;
    return (_Val);
}
 
 
int test()
{
    setlocale(LC_ALL, "");
    std::ifstream ifs("in.txt");
    
    typedef std::istream_iterator<int> I;
    
    std::cout
        << "Сумма чисел с тремя установленными единичными битами: "
        << accumulate_if(I(ifs), I(), 0, bit_counter(3)) << std::endl;
 
    return 0;
}
для файла с числами: 1 2 3 4 5 6 7 8 9 10 11
вывод: Сумма чисел с тремя установленными единичными битами: 18
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru