snprintf() trong C++ là gì

Snprintf Trong C La Gi



C ++ là ngôn ngữ lập trình thường được sử dụng mang lại một số lợi thế cho các lập trình viên. Nó bao gồm nhiều chức năng tích hợp khác nhau có thể được sử dụng cho nhiều mục đích. Trong số các chức năng đó, có một chức năng được gọi là snprint() , mà mọi người hầu như không biết.

Trong bài viết này, chúng tôi sẽ giải thích cú pháp, tham số, giá trị trả về và hoạt động của snprintf() hàm trong C++. Người ta có thể tìm thấy một sự hiểu biết đầy đủ về snprintf() trong hướng dẫn này.

snprintf() trong C++ là gì

Trong C++, snprintf() là một hàm được sử dụng để định dạng hoặc lưu trữ một chuỗi các giá trị ký tự và chuỗi được ghi vào bộ đệm. Nó hoạt động tương tự như chạy nước rút () chức năng nhưng nó có khả năng khắc phục lỗi tràn bộ đệm. Các tệp tiêu đề bao gồm snprint() và nó phải được khai báo nếu bạn muốn sử dụng hàm trong chương trình của mình. Các snprintf() chức năng chỉ định nội dung tối đa mà bộ đệm có thể có.







Đưa ra dưới đây là cú pháp để sử dụng snprintf() hàm trong C++:



snprintf ( than * đệm, size_t buf_size, hằng số than * định dạng, ... ) ;

Khi các ký tự đã được viết xong, một ký tự null kết thúc sẽ được chèn vào. Nếu MAX_BUFSIZE bằng không, không có gì được lưu trữ và bộ đệm có thể hoạt động như một con trỏ rỗng.



Các tham số của snprintf()

Sau đây là các tham số được sử dụng trong snprintf() chức năng.





  • đệm : Một con trỏ tới bộ đệm chuỗi nơi đầu ra sẽ được ghi.
  • buf_size : MAX_BUFSIZE-1 là số ký tự tối đa mà một người có thể ghi vào bộ đệm.
  • định dạng : Một chuỗi kết thúc null đã được ghi vào một luồng tệp dưới dạng một con trỏ. Nó được tạo thành từ các ký tự và các chỉ định định dạng có thể bắt đầu bằng%. Các giá trị của các biến tuân theo một chuỗi định dạng thay thế các chỉ định định dạng.
  • (đối số bổ sung) : Tùy thuộc vào loại chuỗi định dạng, hàm có thể mong đợi một danh sách các đối số bổ sung, tất cả đều chứa một giá trị được sử dụng để thay thế định dạng định dạng trong định dạng của chuỗi (hoặc, đối với MAX_BUFSIZE, một con trỏ tới vị trí lưu trữ) .

Cần có tối thiểu nhiều tham số như vậy khi có các giá trị chỉ định định dạng. Hàm bỏ qua bất kỳ đối số bổ sung nào.

snprintf() Trả về là gì

Nếu hàm này thành công, nó sẽ trả về số lượng ký tự sẽ được coi là đã viết cho bộ đệm lớn thích hợp, ngoại trừ ký tự null kết thúc. Khi nó không thành công, nó mang lại một giá trị tiêu cực. Đầu ra sẽ được coi là đã ghi hoàn chỉnh khi và chỉ khi giá trị được trả về không âm và nhỏ hơn MAX_BUFSIZE.



Cách sử dụng snprintf() trong C++

Đây là một ví dụ về việc sử dụng snprintf() trong C++:

Ví dụ

#bao gồm
#include
sử dụng không gian tên tiêu chuẩn ;
int chủ yếu ( )
{
than buff_size [ 60 ] ;
int return_Value, MAX_BUFSIZE = 60 ;
than str [ ] = 'linux' ;
int bài viết = Bốn năm ;
return_Value = snprintf ( buff_size, MAX_BUFSIZE, 'Xin chào Người dùng %s, hãy đọc %d bài viết về bash' ,str, bài viết ) ;
nếu như ( return_Value > 0 && return_Value < MAX_BUFSIZE )
{
cout << buff_size << kết thúc ;
cout << 'Số ký tự đã viết = ' << return_Value << kết thúc ;
}
khác
cout << 'Lỗi ghi vào bộ đệm' << kết thúc ;
trở lại 0 ;
}

Trong đoạn mã trên, chúng tôi đặt kích thước tối đa của bộ đệm là 60. Điều đó có nghĩa là mã sẽ chấp nhận các ký tự không quá 60. Chúng tôi đã sử dụng snprintf() chức năng xuất một chuỗi có 56 ký tự và nó sẽ được hiển thị ở đầu ra. Trường hợp số ký tự bạn nhập lớn hơn 60 thì chương trình sẽ báo lỗi.

Phần kết luận

Chúng tôi đã chứng minh nguyên mẫu, tham số, giá trị trả về và hoạt động của C++ snprintf() chức năng ghi một chuỗi được định dạng vào bộ đệm chuỗi ký tự. Chúng tôi đã mô tả một ví dụ với sự hiểu biết đầy đủ về snprintf() trong hướng dẫn này.