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

Копирование файлов в папку по условию - 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 целых чисел выводится эта последовательность на экран. Найти максимальное совершенное число в последовательности, если таких несколько, вывести их количество (результатом функции будет 1 – число совершенное, 0 -нет). 2)Случайно задан массив Y(k) целых чисел. Если он упорядочен, оставить его...
C++ Заменить на инициалы (строки) Ввести фамилию, имя и отчество как одно данное типа строка. Заменить на инициалы Ввести фамилию, имя и отчество как одно данное типа строка. Определить длину строки и количество букв «а» в нем. Выполнить задачи своего двумя способами: - Рассматривая строку как массив символов. - Применяя к строке функции и процедуры. подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
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;
}
 
Текущее время: 15:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru