sprintf snprintf mplab ejemplo c++ printf

c++ - snprintf - sprintf php



C++ equivalente de sprintf? (6)

Aquí hay una buena función para un sprintf de c ++. Las corrientes pueden ponerse feas si las usas demasiado.

std::string string_format(const std::string &fmt, ...) { int n, size=100; std::string str; va_list ap; while (1) { str.resize(size); va_start(ap, fmt); int n = vsnprintf(&str[0], size, fmt.c_str(), ap); va_end(ap); if (n > -1 && n < size) return str; if (n > -1) size = n + 1; else size *= 2; } }

En C ++ 11 y versiones posteriores, std :: string garantiza el uso de un almacenamiento contiguo que finaliza con ''/0'' , por lo que es legal convertirlo a char * con &str[0] .

Sé que std::cout es el equivalente de C ++ de printf .

¿Cuál es el equivalente en C ++ de sprintf ?


Puede usar el archivo de encabezado iomanip para formatear la secuencia de salida. ¡Mira this !


Usa un stringstream para lograr el mismo efecto. Además, puede incluir <cstdio> y aún usar snprintf.


Use Boost.Format . Tiene sintaxis tipo printf , tipo de seguridad, std::string , y muchas otras cosas ingeniosas. No volverás.


std::ostringstream

Ejemplo:

#include <iostream> #include <sstream> // for ostringstream #include <string> int main() { std::string name = "nemo"; int age = 1000; std::ostringstream out; out << "name: " << name << ", age: " << age; std::cout << out.str() << ''/n''; return 0; }

Salida:

name: nemo, age: 1000