在C/C++中使用sprintf()函数
时间:2020-02-23 14:30:04 来源:igfitidea点击:
在本文中,我们将介绍如何在C/C++中使用sprintf()函数。
如果要将字符从格式字符串写入缓冲区,这是一项重要功能。
让我们使用示例说明一下此功能!
C/C++中sprintf()函数的基本语法
此函数采用格式字符串,并将其写入字符串缓冲区。
这与printf()非常相似,但是将输出写到缓冲区而不是stdout。
这个功能存在于<stdio.h>头文件中。
#include <stdio.h> int sprintf (char* buffer, const char* fmt, ...);
其中这将接收一个输入fmt字符串以及必要的参数(用...表示),并将其存储到buffer中。
如果成功,该函数将返回写入缓冲区的字符数。
如果失败,它将返回一个负整数。
缓冲区的大小必须足够大以容纳字符串!否则,您可以访问未绑定的内存位置。
现在,要完全理解这一点,让我们看一些示例:
使用sprintf()–一些示例
让我们从用户那里获取输入,并使用sprintf()将其连接到字符串上。
#include <stdio.h>
int main() {
char original[] = "Hello from theitroad";
char buffer[256];
printf("Enter an integer:\n");
int n;
scanf("%d", &n);
sprintf(buffer, "%s_%d", original, n);
printf("Buffer = %s\n", buffer);
return 0;
}
输出
Enter an integer: 100 Buffer = Hello from theitroad_100
如您所见,我们使用格式字符串将整数直接连接为字符串。
您可能只是意识到在正确的时间使用此功能有多方便!
现在让我们再举一个例子来验证所有字符都已写入缓冲区。
#include <stdio.h>
int main() {
char original[] = "Hello from theitroad";
char buffer[25];
printf("Enter an integer:\n");
int n;
scanf("%d", &n);
int num_written = sprintf(buffer, "%s_%d", original, n);
printf("Buffer = %s\n", buffer);
printf("Number of Characters written using sprintf() = %d\n", num_written);
return 0;
}
输出
Enter an integer: 10 Buffer = Hello from theitroad_10 Number of Characters written using sprintf() = 24
如您所见,写入的字符数(24)与字符串长度相同!

