C/C++ - [решено] Написание секундомера в консоли.

Ответить
Аватара пользователя
котвася

C/C++ - [решено] Написание секундомера в консоли.

Сообщение котвася »

вот написал таймер, ток не могу придумать как остановить.

Помогите.

Код: Выделить всё

//STOPWATCH.CPP
//Снкундомер в консоли.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <iomanip>
using std::setw;
#include <time.h>
void wait(int seconds)
{
  clock_t endwait;
  endwait = clock () + seconds * CLOCKS_PER_SEC ;
  while ((clock() < endwait)) {}
}
void printStopWatch(int seconds = 0, int status = 0)
{
	char *ptr[10] = {"СЕКУНДОМЕР", "РАБОТАЕТ", "CТОП"};
	cout << "********************" << endl;
	cout << "********************" << endl;
	cout << "|    " << setw(10) << *(ptr+status) << "    |" << endl; 
	cout << "|       " << setw(2) << seconds/60 << " : " 
		 << setw(2) << ((seconds < 60) ? seconds : seconds%60) << "    |" << endl;
	cout << "********************" << endl;
	cout << "********************" << endl;
}
int main()
{
	setlocale(LC_ALL, ".1251");
	cout << "Приложение секундомер" << endl;
    int n = 0;
	bool status = true;
	printStopWatch(0,0);
	cout << "Нажмите клавишу Enter для начала...";
	cin.get();
	while(status != false)
	{
		system("cls");
		printStopWatch(n,1);
		wait (1);
		n++;
	}
              printStopWatch(n, 3);
	return 0;
}
Аватара пользователя
котвася

Re: C/C++ - [решено] Написание секундомера в консоли.

Сообщение котвася »

по задумке моей надо изменить bool ststus в true чтоб остановить
Аватара пользователя
AlexTNT

Re: C/C++ - [решено] Написание секундомера в консоли.

Сообщение AlexTNT »

Можно было бы нажать на кнопку Pause(Break), правда всё исчезает...
Аватара пользователя
котвася

Re: C/C++ - [решено] Написание секундомера в консоли.

Сообщение котвася »

Если нажать Pause(Break) у меня не чего не исчезает, программа останавливается. И продолжает работать дальше после нажать любой другой. Как сделать что бы хотя бы после нажатия "любой другой" останавливалась навсегда?
Аватара пользователя
котвася

Re: C/C++ - [решено] Написание секундомера в консоли.

Сообщение котвася »

ЭВРИКА РАБОТАЕТ!!!!!!!

Код: Выделить всё

//STOPWATCH.CPP
//Снкундомер в консоли.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <iomanip>
using std::setw;
#include <time.h>
#include <windows.h>
void printStopWatch(int seconds = 0, int status = 0)
{
	system("cls");
	char *ptr[10] = {"СЕКУНДОМЕР", "РАБОТАЕТ", "CТОП"};
	cout << "********************" << endl;
	cout << "********************" << endl;
	cout << "|    " << setw(10) << *(ptr+status) << "    |" << endl; 
	cout << "|       " << setw(2) << seconds/60 << " : " 
		 << setw(2) << ((seconds < 60) ? seconds : seconds%60) << "    |" << endl;
	cout << "********************" << endl;
	cout << "********************" << endl;
	if(status==0)
		cout << "Нажмите клавишу Enter для начала...";
	if(status==1)
		cout << "Нажмите клавишу Enter для остановки...";
}
void wait(int seconds)
{
	clock_t endwait;
	endwait = clock () + seconds * CLOCKS_PER_SEC ;
   	while((clock() < endwait)){	}
	return;
}
int main()
{
	setlocale(LC_ALL, ".1251");
	cout << "Приложение секундомер" << endl;
              int n = 0;
	bool status = true;
	printStopWatch(0,0);
	cin.get();
	while(status != false)
	{
		printStopWatch(n,1);
		wait(1);
		n++;
		if(GetKeyState(VK_RETURN) == false)
			status=false;
	}
	printStopWatch(n, 2);
	system("pause");
	return 0;
}
Аватара пользователя
котвася

Re: C/C++ - [решено] Написание секундомера в консоли.

Сообщение котвася »

ха облазил весь рунет, это наверное единственный секундомер в консоли Изображение
Ответить

Вернуться в «Программирование и базы данных»