Chào chúng ta đang theo dõi khóa huấn luyện và đào tạo lập trình trực tuyến ngôn từ C++.

Bạn đang xem: Top 13+ thư viện stringstream mới nhất 2023

Trong các bài học trước, chúng ta thường nhập với xuất dữ liệu sử dụng các đối tượng người sử dụng std::cout, std::cin hay những file streams. Những đối tượng người sử dụng này vào vai trò là cấu nối trung gian giữa lịch trình và các thiết bị, hoặc file. Kề bên đó, ngôn từ C++ còn định nghĩa thêm một vài stream thực hiện cho các đối tượng std::string mang đến phép bọn họ sử dụng những toán tử (>) để làm việc cùng với std::string. Cũng tương tự istream cùng ostream, string stream cung ứng một buffer để cất dữ liệu. Mặc dù nhiên, string stream không liên kết đến các Input/Output channel (như keyboard, monitor, file,…).

Stream for string

Sau đó là một số stream cần sử dụng cho std::string mà ngôn ngữ C++ hỗ trợ sẵn: istringstream (thừa kế từ istream), ostringstream (thừa kế từ bỏ ostream) với stringstream (thừa kế từ iostream).

Để sử dụng stringstream, bọn họ cần include tủ sách sstream:

#include tất cả 2 cách để đưa dữ liệu vào buffer của một đối tượng người dùng stringstream:

Sử dụng insertion operator (std::stringstream ss;ss set value bằng phương thức str:

std::stringstream ss;ss.str("I"m learning C++ programming language ");Phương thức str còn được dùng để truy xuất dữ liệu trong một đối tượng stringstream (trả về vẻ bên ngoài std::string):

std::stringstream ss;ss Để lấy tài liệu từ buffer của đối tượng người sử dụng stringstream gửi vào std::string, họ sử dụng insertion operator (>>):

std::stringstream os;os > str
Value;std::string str
Value2;os >> str
Value2;// print the numbers separated by a dashstd::cout cũng như như khi áp dụng insertion operator (>>) của đối tượng người dùng std::cin đến kiểu tài liệu std::string, kí tự khoảng cách không được đọc vào std::string. Bạn cũng có thể sử dụng điểm sáng này để tiến hành split string như sau:

std::string data = "Le Tran Dat";std::stringstream spliter;spliter result;while (!spliter.eof())std::string str;spliter >> str;result.push_back(str);for (int i = 0; i Đầu tiên chúng ta đẩy toàn bộ các kí tự đang được lưu vào string data vào đối tượng người sử dụng stringstream, với các lần trích xuất dữ liệu bằng extraction operator (>>) vào một string khác, chúng ta thêm string đó vào vector kết quả.

Xem thêm: Reup là gì? hướng dẫn cách reup không bị bản quyền

Convert between strings & numbers

Vì insertion với extraction operator rất có thể làm vấn đề với các kiểu tài liệu cơ bản, bạn có thể sử dụng chúng để thay đổi strings quý phái number (và ngược lại).

Các chúng ta thử chạy đoạn chương trình sau để thấy cách biến hóa từ numbers lịch sự strings:

std::stringstream ss;int n
Value = 12345;double d
Value = 67.89;ss > str
Value1 >> str
Value2;std::cout cùng đoạn lịch trình sau gửi strings về lại numbers:

std::stringstream ss;ss > n
Value >> d
Value;std::cout

Clear stringstream for reuse

Chúng ta có thể dùng một đối tượng stringstream cho các string không giống nhau bằng phương pháp xóa dữ liệu bên trong buffer của chính nó đi. Sau đây là một số phương pháp để xóa tài liệu trong stringstream buffer:

std::stringstream ss;ss.str(""); //erase the bufferss.clear(); //erase và reset error flags

Tổng kết

std::stringstream là 1 trong những class khá có lợi cho việc thao tác làm việc với kiểu tài liệu std::string và chúng ta sẽ yêu cầu dùng chúng đến các công việc sau này.

Hẹn chạm chán lại các bạn trong bài bác học tiếp sau trong khóa đào tạo và huấn luyện lập trình C++ hướng thực hành.

em có một hàm như sau:string ftime(int t) ostringstream s;s string str = s.str();return str;Mọi người hoàn toàn có thể giải say mê rõ mang lại e về ostringstream với istringstream(chức năng cũng như cách sử dụng) và ý nghĩa sâu sắc của phần lớn câu lệnh trên đc ko ạ ?
*
*
vấn đáp cùng với trích dẫn
*

*
Thành viên sức nóng tình
*

nó y hệt như cout (~ostringstream) cin (~istringstream) vậy thôi. Thay bởi vì in ra screen mình ko đem được chuỗi in ra thì xài stringstream mình đem được chuỗi in ra.ostringstream tính năng chủ yếu chắc rằng là có tác dụng string builder, tốt chuyển nhiều phong cách ko liên quan thành chuỗi. Ví dụ chuyển float phần trăm thành chuỗi tất cả format làm cho tròn cho tới 2 chữ số và gửi về dạng % thì viết là:
output : 51.50%còn istringstream thì công dụng chủ yếu đuối là parse chuỗi. Ví dụ có một chuỗi "reserve(1,4,5,6) 1234 8 ho_ten" mong muốn parse thành: thương hiệu lệnh, list các số lệnh này hình ảnh hưởng, thời khắc bắt đầu, thời lượng, họ, thương hiệu vào 1 mẫu struct Command thì xài istringstream parse là:
cmd.rooms.push_back(atoi(token.c_str())); //chuyển số phòng từ chuỗi thành số bằng atoi() rồi bỏ vô cmd.rooms
Quick Navigation
Nhập môn thiết kế C/C++Top
Các khu vực của site
Các diễn đàn
CỘ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 và 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Í
*
Quyền hạn của bạn
Bạn không thể gửi đề bài mới
Bạn không thể gửi bài xích trả lời
Bạn không thể gửi các đính kèm
Bạn không thể chỉnh sửa bài viết của bạn
2006- Nguồn vẫn được cung ứng bởi v
Bulletin® 4.2.2- bản quyền nguồn ©2023 v
Bulletin Solutions, Inc
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *