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

Как связать несколько output потоков? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Анализ цвета изображения. Кластеризация http://www.cyberforum.ru/cpp-beginners/thread105779.html
Здравствуйте, уважаемые! Мне нужна Ваша помощь, помогите советом. У меня есть задание для курсовой работы:решение задачи кластеризации для цветов радужной оболочки глаза. Все цвета глаз можно отнести к трем кластерам : коричневый, голубой и смешанный. Мне необходимо написать аналитическую программу, на вход которой бы подавалось изображение радужной оболочки глаза. Программа должна каким-либо...
C++ ifstream ERROR_PATH_NOT_FOUND Приветствую! 3й день бьюсь над одной проблемой. Есть список путей к файлам, необходимо их все прочитать и обработать. И вот если в пути к какому-нибудь файлу есть пробел - получаю ERROR_PATH_NOT_FOUND. Утомился гуглить, если есть возможность, подскажите что именно искать или куда копать в поисках решения данной проблемы. Из найденного в гугле пробывал: 1) Обёртывал строку в кавычки ("")... http://www.cyberforum.ru/cpp-beginners/thread105625.html
Копии C++
class a { ... public: a (a &o); a &operator = (a &o); ... }; .... a o1,o2;
C++ Откатываемый (undoable) класс
Решил тут сделать универсальный интерфейс "откатываемости", который можно было бы прикрутить к любому классу. Идея в том, чтобы, унаследовав свой класс от некоторого класса Undoable, получить возможность сохранять, отменять и повторять изменения, произошедшие с классом. Ну, как undo/redo в любой программе. Но смысл именно в универсальности, т.е. отменять действия не на уровне приложения, а на...
C++ Нужно программу на Паскале переделать в программу на С++ http://www.cyberforum.ru/cpp-beginners/thread105498.html
Помогите, пожалуйста!!! У меня есть программа на Паскале , а нужно ее переписать, чтобы она была на С++ (windows консоль). Текст программы на Паскале: var i, i1, i2 ,N, z: integer; q,delta,X,Y,a,b,k,Y1,X1: real; M, M1: array of real; {2 stroki - 1- X, 2 - Y } begin write('Input tha count of dots N='); readln(N);
C++ Найти все n-значные числа Армстронга для данного n<9 Натуральное n-значное число называется числом Армстронга, если оно равно сумме n-х степеней своих цифр. Найти все n-значные числа Армстронга для данного n<9, каждое такое число вывести с новой строки. Например, 153=13+53+33. Помогите друзья, горю, завтра сдавать, чет не как не идет, буду всю ночь думать. Помогите. Пишите до 6-ти утра:) Добавлено через 52 минуты На языке С. подробнее

Показать сообщение отдельно
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.03.2010, 18:54     Как связать несколько output потоков?
Можно ли создать поток, который будет связан с несколькими потоками, что-бы при записи в него производиласт запись и во все связаные потоки. К примеру, в следующем коде хотелось-бы что-бы результат не только был записан в файл, но и выведен на екран, можно конешто продублировать код, но если мне надо будет записать ето еще кудато, тогда что, создать еще поток и еще раз продублировать? А если мне надо будет что-то менять?
Code
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
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
#include <stdint.h>
 
typedef int64_t LL;
typedef std::vector<int> VI;
#define FOR(i,a,b) for(int i(a), _n(b); i < _n; ++i)
#define sz size()
 
const LL base = 1000*1000*1000;
 
VI operator *= (VI &a, VI &b)
{
    VI res(a.sz+b.sz);
    FOR(i,0,a.sz)
        for (int j = 0, carry = 0; j < b.sz || carry; ++j)
        {
            LL cur = res[i+j] + carry + a[i] * LL(j < b.sz ? b[j] : 0);
            res[i+j] = cur % base;
            carry = cur / base;
        }
    while (res.sz > 0 && !res.back()) res.pop_back();
    a = res;
    return a;
}
 
VI BinPow(int a, int n)
{
    VI res(1, 1), b(1, a);
    while (n)
        if (n&1) --n, res *= b;
        else n >>= 1, b *= b;
    return res;
}
 
int main()
{
    int a, n;
    clock_t begin, end;
    try
    {
        std::cin >> a >> n;
        if (a < 0 || n < 0) throw "Wrong input";
        begin = clock();
        VI res = BinPow(a, n);
        end = clock();
        
        std::ofstream file("output.txt");
        if (!file.good()) throw "Cann't open file.";
        
        file << a << "^" << n << "\n\n" << res.back();
        file.fill('0'), file.width(9);
        for (int i = res.sz-2; i > -1; --i)
            file << res[i];
        file << "\n\n" << "BinPow time: " << end - begin << " milisecond" <<
            ((end - begin < 2) ? "" :  "s") << std::endl;
    }
    catch (const char *event)
    {
        std::cout << event << std::endl;
    }
    system("pause");
}


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