Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 23.06.2010
Сообщений: 33

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

21.02.2012, 19:00. Показов 1675. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток)

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

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

Разработать программу для вычисления полного количества секунд, прошедших между двумя значениями времени. Значение времени – это строки вида ЦЦ.ЦЦ.ЦЦ, где Ц – это любая цифра из диапазона [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;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2012, 19:00
Ответы с готовыми решениями:

Подключить DLL и создать поток
HMODULE g_HModule = 0; BOOL WINAPI DllMain(HINSTANCE hInsatnce, DWORD dwReason, LPVOID lpReserved) { if(dwReason ==...

Ошибка-Текущий поток должен быть задан как поток однопоточного контейнера STA
Значит модуль в нем классы.Я создаю свое гуи.Так вот при вызове процедуры котрая копирует текст(в буфер) вылезает эта ошибка я уже с ней...

OpenFileDialog и потоки: Текущий поток должен быть задан как поток однопоточного контейнера (STA)
Со стартового окна запускаю формы вот так: new Thread(() =&gt; { ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2012, 19:00
Помогаю со студенческими работами здесь

Как в С++ Builder из 2х потоков рисовать на форме квадратики(это первый поток рисует) и кружочки (2ой поток))
Помогите пожалуйсмта))))) Как в С++ Builder из 2х потоков рисовать на форме квадратики(это первый поток рисует) и кружочки (2ой поток))

Вызывающий поток не может получить доступ к объекту, так как его владельцем является другой поток
Есть форма MainWindo, есть класс AB. В форме единая точка доступа к элементам формы. public static MainWindow Forma = null; ...

Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны
Суть проблемы: Создаю приложение по sql. При создании формы с датагридом и пр. отдельным потоком возникает ошибка: &quot;Текущий поток...

Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны
пишет:Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны. Проверьте, что ваша...

Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны
есть следующая функция, при клике по Open выдает ошибку: Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru