在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)与字符串长度相同!