Cách dùng setw?

Cho mình hỏi 2 cái giống nhau nhưng tại sao 1 cái lại nằm trái và 1 cái nằm bên phải vậy,
Theo hình dưới thì Bắc không tạo với setw(10) để tạo khoảng trống(không bị thục vô) nhưng 50 lại tạo với setw(10) khoảng trống ( nó bị thục vô)?
mình cảm ơn

Bạn đặt sai vị trí của setw rồi, setw(10) căn ra rộng 10 ô rồi mới sếp biến vô đó.

#define printstr(a, b, c) \
        cout << setw(10) << (a) << \
                setw(10) << (b) << \
                setw(10) << (c) << endl \

1 Like

Không, bạn hiểu nhầm ý mình rồi, mình muốn nó lề phải mà không dùng lệnh right như vậy nè,

mà khi thực hiện cái này thì thì nó cho ra bảng trên mà 50 ko thục vô. và mình muốn hỏi là vì sao nó thục vô thôi

setw nó mặc định vị trí đc đặt bên phải rồi mà :? theo như mình thấy bạn đang muốn nó lề trái chứ nhỉ?

uk, mình nói nhầm :stuck_out_tongue: , nhưng theo code trên thì vì sao dòng 2 lại thục ra ngoài? Trình biên dịch chạy nó như thế nào mà lại cho nó ra ngoài, chứ mình không hỏi là code này đánh sao cho ngay với cội trên và dưới cả :stuck_out_tongue:

bạn cho biến trước rồi mới setw, setw của “Nam” áp dụng cho cái sau là thằng “50” đó, nên thằng “50” bị đẩy vô

Trong một lệnh(sao dấu ; ) thì nó đã kết thúc rồi chứ, vì sao nó lại liên quan đến cái dưới, nến bạn nói là lấy từ chữ Nam thì đáng lẽ chữ Nam phải nằm cuối khoảng trống đó chứ, sao lại lấy chữ Nam rồi mới tới khoảng trống , với lại chứ Nam là có 3 từ vậy còn lại 7 khoảng mà theo hình thì khoảng của sau chữ Bac và cuối chữ Trung bằng với khoảng của đầu dòng 2 với số 50 mà?

bạn có thể test là giữ nguyên code của bạn chỉnh sửa như thế này để sáng tỏ là cái setw theo bạn nghĩ dành cho “Nam” nhưng thật ra là dành cho “50” phía dưới,

#define printstr(a,b,c)\
	cout << (a) << setw(10) << \
		(b) << setw(10) << \
		(c) << endl	   \

setw nó căn lề mặc định bắt đầu từ cuối bên phải rồi tính đi, còn nếu chưa rõ nữa bạn lên hỏi thầy lại thử đi, hay đăng lên sakai ấy thầy chỉ cho rõ ràng mình cũng giải thích có thế thôi

1 Like

Vì terminal nó vậy, đẩy ra ngoài là coi như xong, nên phải hiệu chỉnh trước khi xuất.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?