30/09/2018, 16:25

Làm thế nào để in số 0 đứng đầu?

Em muốn in số 0 đằng trước h,m,s thì phải làm thế nào ạ. Em dùng cout.width (2)cout.fill('0') nhưng khi chạy đến 1 phút vẫn in ra số 0 đằng trước. Mọi người giúp em với ạ . Đây là đoạn code của em:

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
	int h, m, s;
	for (h = 0; h < 60; h++)
	{
		for (m = 0; m < 60; m++)
		{
			for (s = 0; s < 60; s++)
			{
				Sleep(1000);
				system("CLS");
				cout << h << ":"  << m << ":"  << s;
			}
		}
	}
	return 0;
}
Nguyễn Minh Dũng viết 18:35 ngày 30/09/2018

Quan trọng là em phải thêm setw(2) tức là set chiều rộng là 2, để khi dưới 2 thì nó sẽ setfill(0) điền vào giá trị 0

#include <iostream>
#include <Windows.h>
#include <iomanip>

using namespace std;

int main()
{
    int h, m, s;
    for (h = 0; h < 60; h++)
    {
        for (m = 0; m < 60; m++)
        {
            for (s = 0; s < 60; s++)
            {
                Sleep(1000);
                system("CLS");
                cout << setfill('0') << setw(2) << h << ":";
                cout << setfill('0') << setw(2) << m << ":";
                cout << setfill('0') << setw(2) << s;
            }
        }
    }
    return 0;
}

Output:

Nguyễn Minh Dũng viết 18:42 ngày 30/09/2018

I moved a post to a new topic: Muốn tạo lệnh press any key to pause /play thì làm thế nào?

nhatlonggunz viết 18:39 ngày 30/09/2018

Cho em hỏi lệnh

sleep();
setw();
setfill();

là gì thế ạ

Nguyễn Minh Dũng viết 18:42 ngày 30/09/2018

Sleep để dừng chương trình lại, đơn vị thời gian là ms
setw dùng để set width, như trên anh setw(2) để in ra ít nhất 2 số
setfill dùng để làm đầy chỗ nào thiếu, như anh in ra 2 số, mà thiếu, nên anh setfill(0) để thay số 0 vào chỗ thiếu.

mấy lệnh này không cần quan tâm đâu @nhatlonggunz.

Bài liên quan
0