1
Theo em nghĩ thì:1) cout 2) cin >> setw(3) nghĩa là dành 3 chỗ để đưa 3 cam kết tự vào, nếu như chuỗi nhập ngắn hơn 3 thì nơi dư bị quăng quật đi.Nhưng lúc em gõ 123 vào thì lịch trình lại in ra 12 mà chưa hẳn là 123.Có thể lý giải cho em bên phía trong máy, setw dành khu vực cho ký tự thế nào ko?Em cám ơn các ^ ^.
Bạn đang xem: 1
#include using std::cout;using std::cin;using std::endl;#include using std::setw;#include using std::string;void main(){string s;cin >> setw(3) >> s;cout
vấn đáp cùng với trích dẫn

Thành viên nhiệt tình
Oa , setw dùng được cho tất cả cin nữa hả , trước giờ mình cứ suy nghĩ nó chỉ sử dụng cho cout thui chứ . Mình thử nghiệm thử thấy đúng là setw(3) thì trường hợp nhập 1234 thì nó chỉ in ra 12 thui .Mình đoán là do bạn nhập theo phong cách chuỗi cần nó bắt buộc phải dành 1 nơi cho ký tự dứt chuỗi ( NULL : mã ASCII là 0 ) yêu cầu mới có hiện tượng như vậy .
trả lời cùng cùng với trích dẫn

uhm! Đúng roài. Vì bạn khai báo là string nên nó là thứ hạng chuõi. Mà kiểu chuỗi thì lúc nào cũng có kí tự xong xuôi là "/0" buộc phải mới không còn 1 số
Hi, chưng Deitel viết sách sai rồi ^ ^, copy y chang, lịch trình chạy sai(trang 577, figure 11.4, "How khổng lồ program C++ 5th"). Chắc bắt buộc gọi năng lượng điện cho bác bỏ ấy chỉnh lại vượt ^ ^.Chắc chưa phải vậy đâu, bởi khi em ghi: cin >> s; // type 12cout
2) cin >> setw(3) nghĩa là dành 3 chỗ để đưa 3 cam kết tự vào, ví như chuỗi nhập ngắn lại hơn nữa 3 thì chỗ dư bị bỏ đi.Nhưng khi em gõ 123 vào thì công tác lại in ra 12 mà không hẳn là 123.Có thể phân tích và lý giải cho em bên trong máy, setw dành chỗ cho ký tự ra làm sao ko?Em cám ơn những ^ ^.
Hi, bác Deitel viết sách không nên rồi ^ ^, copy y chang, chương trình chạy sai(trang 577, figure 11.4, "How lớn program C++ 5th"). Chắc buộc phải gọi năng lượng điện cho chưng ấy chỉnh lại quá ^ ^.
Xem thêm: Điều Kiện Ddu Term Là Gì Trong Xuất Khẩu, Ddu Là Gì Trong Xuất Khẩu
Deitel là đơn vị Xuất bản. Edition của cậu là version mấy, hoặc post đoạn code đó lên thử xem.Hầu không còn cả loại trên các right justified, mong muốn canh trái thì std::left.
uhm! Đúng roài. Vì các bạn khai báo là string vì thế nó là phong cách chuõi. Cơ mà kiểu chuỗi thì dịp nào cũng có thể có kí tự kết thúc là "/0" nên mới không còn 1 số
Tui nhập vào abcde, ra abcdeVà setw() nó chỉ chuyển động đúng khi nào stream input nhỏ tuổi hơn range (setw(range))Ví dụ nếu cậu dùng :
1) Thanks, em đọc rồi, bởi vậy “thống nhất dùng string”(tại nó xịn^^) nhưng… do dự khi kiểm tra gồm cho xài ko ^ ^.2) Mấy mẫu ở trên đúng không còn nhưng mẫu cuối em nhập 1234567890 thì nó in 1234 (chắc lại dành 1 cho NULL nữa thừa >.
Xem thêm: Cách Tăng Bảng Bổ Trợ Ap Phép Mid Mùa 11 Mới Chuẩn Nhất Lmht
3) Còn đây là ý con kiến của em. Compiler của em là VC++ 6.0.Em đang viết ra 1 lấy một ví dụ mới, chạy thử thử từng loại thì tóm lại rằng: 3.1) khi cout + setw thì:+ nếu chuỗi nhập lớn hơn range: Nó đã cout hết hầu hết gì ta nhập mặc kệ capacity của mảng string xuất xắc char<> chính là bao nhiêu.+ nếu như chuỗi nhập nhỏ hơn range: setw đã có tính năng ^ ^. 3.2) lúc cin + setw thì:+ trường hợp chuỗi nhập to hơn range: Nó sẽ cin vào (range – 1) cam kết tự.+ nếu chuỗi nhập bé dại hơn range: thì... Bình thường thôi ^ ^.
const int A = 3;void main(){char s1 = 0;string s2;cin >> setw(A) >> s1;cout > setw(A) >> s2;////cout > s1;////cout > s2;////cout
đặc điểm này thì em cũng không rõ lắm, cơ mà em đọc thì có một số trường hợp rất có thể xài vector thay thế sửa chữa cho string, nhưng chắc chắn là pure char<> là không nên dùng. Nếu mang lại em xài từ trên xuống bên dưới theo độ ưu ái
.- string : 1st- vector : 2nd- char <> : 3rd
Quick NavigationThắc mắc lập trình sẵn C/C++/C++0xTopCác quanh vùng của siteCác diễn đànCỘNG ĐỒNG C VIỆTĐỊNH HƯỚNG, ĐÀO TẠO & VIỆC LÀM NGÀNH CNTTLẬP TRÌNH VISUAL C#LẬP TRÌNH OBJECTIVE-CLẬP TRÌNH JAVALẬP TRÌNH VISUAL C++ | LẬP TRÌNH VISUAL C++.NETLẬP TRÌNH C++ | LẬP TRÌNH C | LẬP TRÌNH C++0XLẬP TRÌNH TRÊN LINUX | LINUX PROGRAMMINGDATABASE & REPORTING | CÁC HỆ QUẢN TRỊ DATABASETHÀNH VIÊN CỘNG ĐỒNG C VIỆTTHẢO LUẬN CHUNGCHUYÊN MỤC GIẢI TRÍ
Bạn đang xem: 1
#include using std::cout;using std::cin;using std::endl;#include using std::setw;#include using std::string;void main(){string s;cin >> setw(3) >> s;cout
vấn đáp cùng với trích dẫn



Oa , setw dùng được cho tất cả cin nữa hả , trước giờ mình cứ suy nghĩ nó chỉ sử dụng cho cout thui chứ . Mình thử nghiệm thử thấy đúng là setw(3) thì trường hợp nhập 1234 thì nó chỉ in ra 12 thui .Mình đoán là do bạn nhập theo phong cách chuỗi cần nó bắt buộc phải dành 1 nơi cho ký tự dứt chuỗi ( NULL : mã ASCII là 0 ) yêu cầu mới có hiện tượng như vậy .
trả lời cùng cùng với trích dẫn

uhm! Đúng roài. Vì bạn khai báo là string nên nó là thứ hạng chuõi. Mà kiểu chuỗi thì lúc nào cũng có kí tự xong xuôi là "/0" buộc phải mới không còn 1 số
Hi, chưng Deitel viết sách sai rồi ^ ^, copy y chang, lịch trình chạy sai(trang 577, figure 11.4, "How khổng lồ program C++ 5th"). Chắc bắt buộc gọi năng lượng điện cho bác bỏ ấy chỉnh lại vượt ^ ^.Chắc chưa phải vậy đâu, bởi khi em ghi: cin >> s; // type 12cout
2) cin >> setw(3) nghĩa là dành 3 chỗ để đưa 3 cam kết tự vào, ví như chuỗi nhập ngắn lại hơn nữa 3 thì chỗ dư bị bỏ đi.Nhưng khi em gõ 123 vào thì công tác lại in ra 12 mà không hẳn là 123.Có thể phân tích và lý giải cho em bên trong máy, setw dành chỗ cho ký tự ra làm sao ko?Em cám ơn những ^ ^.
Hi, bác Deitel viết sách không nên rồi ^ ^, copy y chang, chương trình chạy sai(trang 577, figure 11.4, "How lớn program C++ 5th"). Chắc buộc phải gọi năng lượng điện cho chưng ấy chỉnh lại quá ^ ^.
Xem thêm: Điều Kiện Ddu Term Là Gì Trong Xuất Khẩu, Ddu Là Gì Trong Xuất Khẩu
Deitel là đơn vị Xuất bản. Edition của cậu là version mấy, hoặc post đoạn code đó lên thử xem.Hầu không còn cả loại trên các right justified, mong muốn canh trái thì std::left.
uhm! Đúng roài. Vì các bạn khai báo là string vì thế nó là phong cách chuõi. Cơ mà kiểu chuỗi thì dịp nào cũng có thể có kí tự kết thúc là "/0" nên mới không còn 1 số
Tui nhập vào abcde, ra abcdeVà setw() nó chỉ chuyển động đúng khi nào stream input nhỏ tuổi hơn range (setw(range))Ví dụ nếu cậu dùng :
1) Thanks, em đọc rồi, bởi vậy “thống nhất dùng string”(tại nó xịn^^) nhưng… do dự khi kiểm tra gồm cho xài ko ^ ^.2) Mấy mẫu ở trên đúng không còn nhưng mẫu cuối em nhập 1234567890 thì nó in 1234 (chắc lại dành 1 cho NULL nữa thừa >.
Xem thêm: Cách Tăng Bảng Bổ Trợ Ap Phép Mid Mùa 11 Mới Chuẩn Nhất Lmht
3) Còn đây là ý con kiến của em. Compiler của em là VC++ 6.0.Em đang viết ra 1 lấy một ví dụ mới, chạy thử thử từng loại thì tóm lại rằng: 3.1) khi cout + setw thì:+ nếu chuỗi nhập lớn hơn range: Nó đã cout hết hầu hết gì ta nhập mặc kệ capacity của mảng string xuất xắc char<> chính là bao nhiêu.+ nếu như chuỗi nhập nhỏ hơn range: setw đã có tính năng ^ ^. 3.2) lúc cin + setw thì:+ trường hợp chuỗi nhập to hơn range: Nó sẽ cin vào (range – 1) cam kết tự.+ nếu chuỗi nhập bé dại hơn range: thì... Bình thường thôi ^ ^.
const int A = 3;void main(){char s1 = 0;string s2;cin >> setw(A) >> s1;cout > setw(A) >> s2;////cout > s1;////cout > s2;////cout
đặc điểm này thì em cũng không rõ lắm, cơ mà em đọc thì có một số trường hợp rất có thể xài vector thay thế sửa chữa cho string, nhưng chắc chắn là pure char<> là không nên dùng. Nếu mang lại em xài từ trên xuống bên dưới theo độ ưu ái

Quick NavigationThắc mắc lập trình sẵn C/C++/C++0xTopCác quanh vùng của siteCác diễn đànCỘNG ĐỒNG C VIỆTĐỊNH HƯỚNG, ĐÀO TẠO & VIỆC LÀM NGÀNH CNTTLẬP TRÌNH VISUAL C#LẬP TRÌNH OBJECTIVE-CLẬP TRÌNH JAVALẬP TRÌNH VISUAL C++ | LẬP TRÌNH VISUAL C++.NETLẬP TRÌNH C++ | LẬP TRÌNH C | LẬP TRÌNH C++0XLẬP TRÌNH TRÊN LINUX | LINUX PROGRAMMINGDATABASE & REPORTING | CÁC HỆ QUẢN TRỊ DATABASETHÀNH VIÊN CỘNG ĐỒNG C VIỆTTHẢO LUẬN CHUNGCHUYÊN MỤC GIẢI TRÍ