/** Copyright (c) 2007, Adnan Zafar** * All rights reserved.* ** * Redistribution and use in source and binary forms, with or without* * modification, are permitted provided that the following conditions are met:* * * Redistributions of source code must retain the above copyright* * notice, this list of conditions and the following disclaimer.* * * Redistributions in binary form must reproduce the above copyright* * notice, this list of conditions and the following disclaimer in the* * documentation and/or other materials provided with the distribution.* * * Neither the name of Adnan Zafar nor the* * names of its contributors may be used to endorse or promote products* * derived from this software without specific prior written permission.* ** * THIS SOFTWARE IS PROVIDED BY Adnan Zafar ``AS IS'' AND ANY* * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED* * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE* * DISCLAIMED. IN NO EVENT SHALL Adnan Zafar BE LIABLE FOR ANY* * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES* * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;* * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND* * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT* * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS* * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**/#include <iostream>#include <iomanip>#include <windows.h>int main(int argc, char **argv) { unsigned minutes; unsigned seconds; std::cout << "Minutes: "; std::cin >> minutes; std::cout << "Seconds: "; std::cin >> seconds; std::cout << std::endl; unsigned minElapsed=0, secElapsed=0; unsigned minRemain = minutes, secRemain = seconds; for (;; sleep(1000)) { std::cout.fill('0'); std::cout << minElapsed << ":" << std::setw(2) << secElapsed << std::setw(1) << "\t\t\t\t-" << minRemain << ":" << std::setw(2) << secRemain << std::flush << '\r'; if (++secElapsed == 60) { minElapsed++; secElapsed = 0; } if (secRemain || minRemain) { if (!secRemain) { if (minRemain) minRemain--; secRemain = 59; } else secRemain--; } } std::cout << std::endl; return 0;}