一个关于sprintf的问题。看看这个结果怎样分析!
#include <stdio.h>
void main( void )
{
char buffer[200], s[] = "computer", c = 'l';
int i = 35, j;
float fp = 1.7320534f;
/* Format and print various data: */
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
j = sprintf( buffer, "\tString: %s\n", s );
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
j += sprintf( buffer + j, "\tCharacter: %c\n", c );
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
j += sprintf( buffer + j, "\tInteger: %d\n", i );
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
j += sprintf( buffer + j, "\tReal: %f\n", fp );
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}
结果如下:
Output:
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫?
character count = 0
Output:
String: computer
character count = 21
Output:
String: computer
Character: l
character count = 35
Output:
String: computer
Character: l
Integer: 35
character count = 50
Output:
String: computer
Character: l
Integer: 35
Real: 1.732053
character count = 71
Press any key to continue
void main( void )
{
char buffer[200], s[] = "computer", c = 'l';
int i = 35, j;
float fp = 1.7320534f;
/* Format and print various data: */
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
j = sprintf( buffer, "\tString: %s\n", s );
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
j += sprintf( buffer + j, "\tCharacter: %c\n", c );
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
j += sprintf( buffer + j, "\tInteger: %d\n", i );
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
j += sprintf( buffer + j, "\tReal: %f\n", fp );
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}
结果如下:
Output:
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫?
character count = 0
Output:
String: computer
character count = 21
Output:
String: computer
Character: l
character count = 35
Output:
String: computer
Character: l
Integer: 35
character count = 50
Output:
String: computer
Character: l
Integer: 35
Real: 1.732053
character count = 71
Press any key to continue
...全文
相关推荐
sprintf,vsprintf越界问题
一、sprintf 越界问题sprintf 函数的第一个参数是要拷贝的目的地址,一般是数组。但是,这个目的地址有长度限制。如果传入的参数太长,可能会导致越界。
sprintf函数详细解释
因此,正确地分配足够的空间是使用sprintf函数时的一个重要考虑。4. **安全性问题**:sprintf函数由于不检查目的字符串的空间大小,存在安全隐患。
sprintf的用法
**输出目的地不同**: - `printf`直接将结果输出到标准输出设备(通常是屏幕)。 - `sprintf`则将结果写入到一个字符数组中。2.
sprintf函数用法
然而,在使用时也需要特别注意缓冲区溢出等问题,以免引入安全风险。
C语言的sprintf函数
C 语言的 sprintf 函数sprintf 函数是 C 语言中的一个非常重要的函数,它用于将格式化的字符串输出到一个数组中。


