Sử dụng các lệnh liên quan đến xuất dữ liệu

Hỏi về hàm setw
em đặt setw(10), em thử nhập 1 số 11 số vào nó ra giá trị là 1410915647. kể cả khi em nhập số 9999999999 vào thì nó vẫn ra số như vậy. Em không hiểu lắm về số 1410915647 đó là số mặc định hay thế nào ạ. em đã thử chạy để tăng dần số đó lên để xem giới hạn của nó là bao nhiêu nhưng lâu quá, chạy mãi k ra anh ạ :frowning:

sewt nó chỉ là tạo khoảng trống trên 1 dòng thôi bạn

anh @TheSky ơi sao không có setfill(char ch) trong iomanip ạ ?

@Huy_Tung anh ơi là giá trị random đó ạ ! em thử debug rồi bằng breakpoint rồi
anh bị lỗi tràn số rồi ạ giá trị vượt ra ngoài tập giá trị của kiểu dữ liệu integer
tối đa là 4 bytes = 32 bit => đoạn giá trị là [-2^31 , 2^31 - 1] hoặc [0 , 2^32 - 1]
không biết em giải thích đúng không mong mọi người thông cảm vì còn kém quá ạ :slight_smile:

1 Like

Trọng phạm vi nội dung của bài thì mình chỉ hướng dẫn các nội dụng thông dụng và hay gặp.
Bạn thông cảm nhé.

Vâng ạ em cảm ơn anh !

1 Like

tạo tiếng kiểu gì vậy bạn, phải chèn \a vào đâu ?

ad à, có vẻ hướng dẫn của ad về precision là chưa chính xác
Nếu nhập setprecision(3) đối với các số có 1 chữ số phần nguyên như 0.12345 thì kết quả hoàn toàn đúng.
Nhưng khi nhập các số có phần nguyên nhiều hơn 1 chữ số thì kết quả sẽ ra khác.
Mong ad có phản hồi

Bạn up code lên để mọi người dễ mường tượng nhé.

Mình nhập code theo như ad thì bị lỗi này nghĩa là sao ạ?

Chắc là bạn nhìn máy tính nhiều nên cận rồi :slight_smile:
về đo mắt kính là vừa

Summary

cout viết thành count kìa ahihi

3 Likes

Hehe, cám ơn bạn. lần sau phải đeo kính khi học bài mới dc :smile:

Vậy chuỗi thì mình yêu cầu nhập từ bàn phím sao ạ. Khi em yêu cầu nhập thì báo lỗi;

string t;
cout << " Nhap ten cua ban: " ;
cin >> t;

Code của bạn không sai. Bạn đưa thông báo lỗi của bạn lên đây.

Mọi người cho hỏi về setprecision, mình set là 2 như hướng dẫn để hiển thị 2 chữ số sau dấu phẩy, tuy nhiên khi chạy thì lại hiển thị 2 chữ số bao gồm cả những số trước dấu phẩy, tức là tổng số chữ số được hiện ra chỉ là 2.
Ngoài ra bài tập của mình là nhập số thực a, b, c và hiển thị ra màn hình phương trình ax^2 + bx + c = 0 (a, b, c chỉ in ra 2 số sau dấu phẩy), vậy làm thế nào để hiển thị được dấu “-” nếu giá trị mình nhập vào là số âm? (theo code mình viết thì nó sẽ hiển thị là + -)

Tại code của bạn chứ không phải do setprecision.

  • Muốn hiện 2 chữ số phần thập phân trong mọi trường hợp: dùng cout << setprecision(2) << fixed;

  • Muốn hiện kiểu như x^2 - 1 thay vì x^2 + - 1: Sử dụng std::cout << std::showpos << ... (demo showpos) hoặc viết hàm in riêng, hệ số nào âm thì in mỗi hệ số, hệ số nào dương thì in thêm dấu +, hệ số nào = 0 thì không in.

1 Like

trong bài viết ad đang bị nhầm 1 chút phải không nhỉ

Mấy anh chị cho em hỏi là trong hình 18 em thấy có chỗ kết quả hơi lạ ạ. Em không hiểu sao lại ra kết quả như vậy ạ. Em cám ơn anh chị

Mặc định là 6 chữ số bạn :smiley:

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