Name
sprintf
Synopsis
Stores formatted output in a string buffer
#include <stdio.h> intsprintf( char * restrictdest, const char * restrictformat, ... );
The sprintf() function is
similar to snprintf(), except
that it has no parameter to limit the number of characters written
to the destination buffer. As a result, using it means risking
buffer overflows, especially because the length of the output
depends on the current locale as well as input variables. Use
snprintf() instead.
Example
double x = 1234.5, y = 678.9, z = -753.1, a = x * y + z;
char buffer[80];
int output_len = 0;
output_len =sprintf( buffer, "For the input values %lf, %lf, and %lf, "
"the result was %lf.\n",
x, y, z, a );
puts( buffer );
if ( output_len >= 80 )
fprintf( stderr, "Output string overflowed by %d characters.\n"
"The variables x, y, z and a may have been corrupted:\n"
"x now contains %lf, y %lf, z %lf, and a %lf.\n",
output_len - 79, x, y, z, a );This code produces the following output:
For the input values 1234.500000, 678.900000, and -753.100000, the result was 837348.950000. Output string overflowed by 14 characters. The variables x, y, z and a may have been corrupted: x now contains 1234.500000, y 678.900000, z -736.004971, and a 0.000000.
See Also
printf(), fprintf(), snprintf(), declared
in stdio.h; vprintf(), vfprintf(), vsprintf(), vsnprintf(), declared in stdarg.h; the wide-character functions:
wprintf(), fwprintf(), swprintf(), declared
in stdio.h and wchar.h; and vwprintf(), vfwprintf(), and vswprintf() ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access