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

Как подключить поток? - C++

Восстановить пароль Регистрация
 
nurkamol
2 / 2 / 0
Регистрация: 23.06.2010
Сообщений: 33
21.02.2012, 19:00     Как подключить поток? #1
Доброго всем времени суток)

вот у меня было тут задачка

условия такова

Разработать программу для вычисления полного количества секунд, прошедших между двумя значениями времени. Значение времени – это строки вида ЦЦ.ЦЦ.ЦЦ, где Ц – это любая цифра из диапазона [0-9]. Вычисление разницы между временами оформляется как функция потока. Сначала осуществляется ввод значений времени, затем запускается поток, и далее – результат выводится на экран.
Как написано все уже сделано

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
// labrab1_time.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <cerrno>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
}
int main()
{
setlocale(LC_CTYPE,"Russian");
char sep;
tm beg={0};
tm end={0};
cout<<"Введите время в формате ЦЦ.ЦЦ.ЦЦ:"<<endl;
cin>>beg.tm_hour>>sep>>beg.tm_min>>sep>>beg.tm_sec>>end.tm_hour>>sep>>end.tm_min>>sep>>end.tm_sec;
beg.tm_mday=end.tm_mday=1;
beg.tm_year=end.tm_year=100;
cout<<"Прошло: "<<difftime(mktime(&end),mktime(&beg))<<" секунд\n";
int h1,m1,s1,h2,m2,s2;
cin>>h1>>sep>>m1>>sep>>s1>>h2>>sep>>m2>>sep>>s2;
cout<<"Прошло: "<<h2*60*60+m2*60+s2-h1*60*60-m1*60-s1<<" секунд\n";
}
вот теперь тока не знаю как подключить функция потока

вот тут к примеру в качестве на число прописью использована потока

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// Число прописью.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <clocale>
#include <windows.h>
using namespace std;
 
char v1[4][20];
char var;
int num[3];
 
// Функция потока
DWORD WINAPI ThreadFunc(PVOID lpParametr)
{
switch(var)
   {
   case '-': strcpy (v1[0],"минус")  ;break;
   case ' ': strcpy (v1[0],"")       ;break;
   }
switch(num[0])
   {
    case 1: strcpy(v1[1],"сто")        ;break;
    case 2: strcpy(v1[1],"двести")     ;break;
    case 3: strcpy(v1[1],"триста")     ;break;
    case 4: strcpy(v1[1],"четыреста")  ;break;
    case 5: strcpy(v1[1],"пятьсот")    ;break;
    case 6: strcpy(v1[1],"шестьсот")   ;break;
    case 7: strcpy(v1[1],"семьсот")    ;break;
    case 8: strcpy(v1[1],"восемьсот")  ;break;
    case 9: strcpy(v1[1],"девятьсот")  ;break;
   }
if( num[1] == 0 || num[1] > 1 )
   {
     if( num[1] > 1 )
       {
            switch( num[1] )
            {
             case 2: strcpy(v1[2],"двадцать")   ;break;
             case 3: strcpy(v1[2],"тридцать")   ;break;
             case 4: strcpy(v1[2],"сорок")      ;break;
             case 5: strcpy(v1[2],"пятьдесят")  ;break;
             case 6: strcpy(v1[2],"шестьдесят") ;break;
             case 7: strcpy(v1[2],"семьдесят")  ;break;
             case 8: strcpy(v1[2],"восемдесят") ;break;
             case 9: strcpy(v1[2],"девяносто")  ;break;
            }
       }
             switch( num[2] )
             {
             case 1: strcpy(v1[3],"один")   ;break;
             case 2: strcpy(v1[3],"два")    ;break;
             case 3: strcpy(v1[3],"три")    ;break;
             case 4: strcpy(v1[3],"четыре") ;break;
             case 5: strcpy(v1[3],"пять")   ;break;
             case 6: strcpy(v1[3],"шесть")  ;break;
             case 7: strcpy(v1[3],"семь")   ;break;
             case 8: strcpy(v1[3],"восемь") ;break;
             case 9: strcpy(v1[3],"девять") ;break;
             }
    }
else if( num[1] == 1 )
    {
             switch( num[2] )
             {
             case 0: strcpy(v1[2],"десять");strcpy(v1[3],"")         ;break;
             case 1: strcpy(v1[2],"одиннадцать");strcpy(v1[3],"")    ;break;
             case 2: strcpy(v1[2],"двенадцать");strcpy(v1[3],"")     ;break;
             case 3: strcpy(v1[2],"тринадцать");strcpy(v1[3],"")     ;break;
             case 4: strcpy(v1[2],"четырнадцать");strcpy(v1[3],"")   ;break;
             case 5: strcpy(v1[2],"пятнадцать");strcpy(v1[3],"")     ;break;
             case 6: strcpy(v1[2],"шестнадцать");strcpy(v1[3],"")    ;break;
             case 7: strcpy(v1[2],"семнадцать");strcpy(v1[3],"")     ;break;
             case 8: strcpy(v1[2],"восемнадцать");strcpy(v1[3],"")   ;break;
             case 9: strcpy(v1[2],"девятнадцать");strcpy(v1[3],"")   ;break;
             }
    }
return 0;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE,"Russian");
 
DWORD dwThreadId, dwThrdParam = 1;
HANDLE hThread;
 
cout <<"Введите число в формате NNN:\n";
cin >> var;
for(int i=0;i<3;i++)
{
cin >> num[i];
}
 
// Код вызова функции для создания потока
// Создание потока в приостановленном состоянии
hThread = CreateThread(
            NULL,              // атрибуты безопасности по умолчанию
            0,                 // размер стека используется по умолчанию
            ThreadFunc,        // функция потока
            &dwThrdParam,      // аргумент функции потока
            CREATE_SUSPENDED,  // флажки создания используются по умолчанию
            &dwThreadId);      // возвращает идентификатор потока
 
// Выполнение потока
ResumeThread (hThread);
 
// При успешном завершении проверяет возвращаемое значение.
if (hThread  == NULL) 
    {
     cout <<"Поток создан не был\n";
    }
else 
    {
     cout <<"Поток успешно создан\n"<<"Handle потока: "<<hThread<<"\n";
     CloseHandle( hThread );
    }
 
cout <<"Введенное число прописью:\n";
cout <<v1[0]<<" "<<v1[1]<<" "<<v1[2]<<" "<<v1[3];
 
getch ();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2012, 19:00     Как подключить поток?
Посмотрите здесь:

Как завершить поток C++
C++ Как перехватить поток данных?
C++ как хранить поток?
как через поток .. C++
Как создать поток в Linux? C++
Скопировать поток и добавить ошибки в поток C++
Статический метод как точка входа в поток - как избавиться C++
Как очистить входной поток от '\n'? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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