看到这段代码:
int main() {
char a[50];
FILE *fp;
fp = fopen("test1.txt", "w");
sprintf(a,"jigar %d \n", 3);
fprintf(fp,"jigar %d \n", 3);
sprintf(a,"patel %d \n", 2);
fprintf(fp,"patel %d \n", 2);
printf("%s", a);
}
Run Code Online (Sandbox Code Playgroud)
在这里,使用fprintf,我可以写入文件
jigar 3
patel 2
Run Code Online (Sandbox Code Playgroud)
我想要的相同功能在哪里我打印在一个char缓冲区.
但使用sprintf给我缓冲
patel 2
Run Code Online (Sandbox Code Playgroud)
我有这么多这样的打印,我想在一个char缓冲区中添加,然后我需要将它返回给应用程序,以便如何以最简单和最快的方式获取它?
pmg*_*pmg 22
sprintf() 返回打印的字符数.
只需使用该号码进行下一次写入......
int i;
char a[50];
char *ap = a;
for (i = 5; i < 15; i++) {
ap += sprintf(ap, "%d ", i);
}
printf("%s\n", a); /* "5 6 7 8 9 10 11 12 13 14 " */
Run Code Online (Sandbox Code Playgroud)
确保不会导致任何缓冲区溢出.