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

Копирование файлов в папку по условию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа с матрицами (Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент) http://www.cyberforum.ru/cpp-beginners/thread705818.html
Дано целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. Характеристикой строки целочисленной матрицы назовем сумму ее отрицательное...
C++ Классы Объясните новичку , зачем нужны классы. Вкратце , я знаю что тема расширная , но хотя бы объяснить для чего нужны они? http://www.cyberforum.ru/cpp-beginners/thread705806.html
C++ На одну строку перенести первых k символов, а на вторую остальные
у меня задана строка (char). затем вводится число k, как мне на одну строку перенести первых k символов, а на вторую остальные(т.е. разбить строку на две)?
Обработка строк. Поиск и вывод символов между фигурными скобками. C++
Помогите решить задачу. В с++ абсолютно ничего не понимаю. Написать функцию, обрабатывающую текст (в соответствии с вариантов) в консольном режиме. Текст читать из файла, результат записать в другой...
C++ Нужны коды на С++ к следующим задачам http://www.cyberforum.ru/cpp-beginners/thread705787.html
нужны срочно коды программ к 3м задачам! помогите горю! 1)Рандомно составляется последовательность из N целых чисел выводится эта последовательность на экран. Найти максимальное совершенное число в...
C++ Заменить на инициалы (строки) Ввести фамилию, имя и отчество как одно данное типа строка. Заменить на инициалы Ввести фамилию, имя и отчество как одно данное типа строка. Определить длину строки и количество букв «а» в нем.... подробнее

Показать сообщение отдельно
igorrr37
1859 / 1477 / 231
Регистрация: 21.12.2010
Сообщений: 2,462
Записей в блоге: 11
23.11.2012, 01:17
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
#include <iostream>
#include <boost/filesystem.hpp>
#include <windows.h>
#include <set>
#include <string>
#include <boost/filesystem/fstream.hpp>
#include <algorithm>
#include <stdexcept>
#include <iterator>
namespace fs = boost::filesystem3;
 
void GetFileNames(std::string const& dirpath, std::set<std::string>& set)
{
    fs::directory_iterator ib(dirpath), ie;
    for(; ib != ie; ++ib)
    {
        set.insert(ib->path().filename().string());
    }
}
 
int main()
{
    SetConsoleOutputCP(1251);
    try
    {
        std::string arrpath[] = {"c:/Test1", "c:/Test2", "c:/Test3"};
        for(auto const& s : arrpath)
        {
            if(!fs::exists(s))
                throw std::runtime_error("fs::exists failed on path: " + s);
        }
        std::set<std::string> arrset[3];
        GetFileNames(arrpath[0], arrset[0]);
        GetFileNames(arrpath[1], arrset[1]);
        std::set_intersection(arrset[0].begin(), arrset[0].end(), arrset[1].begin(), arrset[1].end(), std::inserter(arrset[2], arrset[2].begin()));
        fs::ifstream ifs1, ifs2;
        fs::ofstream ofs;
        std::string s1, s2;
        for(auto const& sfilename : arrset[2])
        {
            ifs1.open((arrpath[0] + '/' + sfilename).c_str()), ifs2.open((arrpath[1] + '/' + sfilename).c_str());
            if(ifs1.is_open() && ifs2.is_open())
            {
                s1.assign(std::istreambuf_iterator<char>(ifs1.rdbuf()), std::istreambuf_iterator<char>());
                s2.assign(std::istreambuf_iterator<char>(ifs2.rdbuf()), std::istreambuf_iterator<char>());
                if(s1 != s2)
                {
                    ofs.open((arrpath[2] + '/' + sfilename).c_str());
                    if(ofs.is_open())
                    {
                        ifs1.clear();
                        ifs1.seekg(0);
                        ifs2.clear();
                        ifs2.seekg(0);
                        for(;  ; )
                        {
                            if(!std::getline(ifs1, s1))
                                s1.clear();
                            if(!std::getline(ifs2, s2))
                                s2.clear();
                            if(!ifs1 && !ifs2)
                                break;
                            if(s1 == s2)
                                ofs << s1 << '\n';
                            else
                            {
                                ofs << "1 = \"" << s1 << "\", 2 = \"" << s2 << "\"\n";
                            }
                        }
                        ofs.close();
                    }
                    else std::cerr << "Unable to open output file " << sfilename << std::endl;
                }
                ifs1.close();
                ifs2.close();
            }
            else
                std::cerr << "Unable to open file(s): " << sfilename << std::endl;
        }
    }
    catch(std::exception const& e)
    {
        std::cerr << "Exception in main: " << e.what() << std::endl;
    }
    return 0;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru