![]() |
Вопрос по WinAPI
Вопрос по синхронизации процессов\потоков. Есть программа, в ней два потока. В одном ввод символа, в другом выводится "*" если мы ввели цифру (в случае ввода символа ничего не выводится, и нужно повторить ввод). Как сделать чтобы программа принимала значение (цифру или символ) и сразу запускался второй поток, выводящий "*"? (сейчас ввод данных производится после нажатия Enter'a). Подскажите через что можно реализовать.
|
всмысле через что можно реализовать? например в с# мона использовать System.Threading; оно имеет класс потока - Thread.
как я понимаю ты это делаешь в консоле - поэтому у тебя и затык с энтером. ты небось с консоли пытаешься получить строку что в корне неверно тебе нужно получать посимвольно. тогда энтер в конце не требуется. |
SeRgikON, вы имеете в виду потоки ввода/вывода? Если да, то просто можно с одного потока (вводящего символ) считать символ, проверить, цифра ли, если истина, вывести во втором потоке *. Если у вас разные нити приложения, в которых ваша программа исполняется, тогда тут нужно немного по другому...(немного не понятно про какие потоки идет речь, в Java, на пример, потоки ввода-вывода называются Stream, а нити приложения-Thread).
|
crashtuak,
да собственно говоря в "с" подобных языках также - потоки ввода/вывода: базовый класс - Stream, многозадачность - Thread |
Beyound, та я то знаю(от вас:)), просто SeRgikON не написал про какие именно потоки идет речь:)
|
crashtuak, потоки всмысле "нитей" приложения. и если можно поподробней, про "немного по другому" :)
код: |
1) Инклудим conio.h
2) Используем функцию _getch(). Возвращает int(код введенного символа '0'=48..'9'=57). 3) Проверяем введенный символ на принадлежность к числам, вызываем поток для печати "*". Пример кода: Код:
#include <conio.h> |
как-то у меня вообще ничего не вводится через _getch()...
ну такое задание, в одном потоке ввод, а в другом вывод |
Понятно... А
Цитата:
У меня почему то с сложными условиями в цикле не работало, пришлось сделать контрольную переменную типа bool, и в теле цикла пробегая по swicth устанавливать контрольную переменную в нужное состояние... |
пример не работает, ничего не вводится
|
SeRgikON, там и ниче не должно выводится:) Просто в дебагере нужно посмотреть равно ли n=0 если нет, значит все работает:)
|
Время: 17:14. |
Время: 17:14.
© OSzone.net 2001-