¿Qué es snprintf en c ++?

¿Qué es snprintf en c ++?
C ++ es el lenguaje de programación comúnmente utilizado que ofrece varias ventajas a los programadores. Incluye varias funciones incorporadas que podrían utilizarse para los muchos propósitos. Entre esas funciones, hay una función llamada snprint (), que la gente apenas conoce.

En este artículo, explicaremos la sintaxis, los parámetros, los valores de retorno y el funcionamiento de snprintf () función en c++. Se puede encontrar una comprensión completa de snprintf () En esta guía.

¿Qué es snprintf () en c?++

Cª++, snprintf () es una función utilizada para formatear o almacenar una serie de valores de caracteres y cadenas escritos en el búfer. Funciona de manera similar a sprintf () función pero tiene la capacidad de superar los desbordamientos del búfer. El El archivo de encabezado incluye el snprint () función y debe declararse si desea usar la función en su programa. El snprintf () La función especifica el contenido máximo que el búfer podría tener.

La siguiente es la sintaxis para usar snprintf () función en c ++:

snprintf (char* buffer, size_t buf_size, const char* format, ...);

Una vez que se han escrito los personajes, se inserta un carácter nulo final. Si max_bufsize es cero, no se almacena nada y el búfer puede actuar como un puntero nulo.

Parámetros de snprintf ()

Los siguientes son los parámetros utilizados en snprintf () función.

  • buffer: Un puntero a un búfer de cadena donde se escribirá la salida.
  • BUF_SIZE: Max_bufsize-1 es el recuento máximo de caracteres que se pueden escribir en el búfer.
  • formato: Una cadena nula se ha escrito en una transmisión de archivo como un puntero. Está formado por caracteres y posibles especificadores de formato que comienzan con %. Los valores de las variables que siguen una cadena de formato sustituyen los especificadores de formato.
  • (argumentos adicionales): Dependiendo del tipo de cadena de formato, la función puede esperar una lista de argumentos adicionales, todos que contenga un valor que se utiliza para reemplazar el especificador de formato en el formato de la cadena (o, para max_bufsize, un puntero a una ubicación de almacenamiento).

Debe haber un mínimo de tantos parámetros de estos como valores de formato especificadores. La función ignora cualquier argumento adicional.

¿Qué devuelve snprintf ()?

Si la función es exitosa, devuelve el número de caracteres que se considerarían escritos para un búfer adecuadamente grande, excluyendo un carácter nulo terminado. Cuando falla, produce un valor negativo. La salida se considerará completamente escrita si y solo si un valor que se devuelve no es negativo y es más pequeño que max_bufsize.

Cómo usar snprintf () en c++

Aquí hay un ejemplo de usar snprintf () en c ++:

Ejemplo

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

char buff_size [60];
int retrot_value, max_bufsize = 60;
char str [] = "Linuxhint";
INT Artículos = 45;
return_value = snprintf (buff_size, max_bufsize, "Hello %s Usuarios, leemos %d artículos sobre bash", str, artículos);
if (return_value> 0 && return_value < MAX_BUFSIZE)

cout << buff_size << endl;
cout << "Number of characters written = " << return_Value << endl;

demás
cout << "Error writing to buffer" << endl;
regresar 0;

En el código anterior, establecemos el tamaño máximo del búfer en 60. Significa que el código aceptará caracteres no más de 60. Hemos usado el snprintf () función para emitir una cadena que tenga 56 caracteres y se mostrará en el terminal de salida. En caso de que sus caracteres ingresados ​​tengan más de 60 años, el programa a través de un error.

Conclusión

Hemos demostrado el prototipo, los parámetros, los valores de retorno y el funcionamiento de la C++ snprintf () función que escribe una cadena formateada en un búfer de cadena de caracteres. Describimos un ejemplo con una comprensión completa de snprintf () En esta guía.