C中的sprintf和printf有什么区别?
What is the difference between sprintf and printf in C?
我正在研究 CS50 的 pset4,并且在 CS50.I 的 recover.c 问题中真的很困惑在哪里使用 sprintf 想知道在什么地方使用 sprintf 和 printf。
sprintf
格式化一个字符串,写入第一个参数指定的字符数组(假设足够space); printf
格式化一个字符串并将其写入 stdout
.
例如:您可以使用 sprintf
:
char buffer[100];
sprintf(buffer, "My name is %s and I am %d years old", "John Doe", 25);
// buffer now contains "My name is John Doe and I am 25 years old"
但是,如果要将格式化字符串写入标准输出流,则需要使用printf
(或fprintf
,第一个参数为stdout
):
printf("My name is %s and I am %d years old", "John Doe", 25);
// the text "My name is John Doe and I am 25 years old" gets printed to the stdout stream
我正在研究 CS50 的 pset4,并且在 CS50.I 的 recover.c 问题中真的很困惑在哪里使用 sprintf 想知道在什么地方使用 sprintf 和 printf。
sprintf
格式化一个字符串,写入第一个参数指定的字符数组(假设足够space); printf
格式化一个字符串并将其写入 stdout
.
例如:您可以使用 sprintf
:
char buffer[100];
sprintf(buffer, "My name is %s and I am %d years old", "John Doe", 25);
// buffer now contains "My name is John Doe and I am 25 years old"
但是,如果要将格式化字符串写入标准输出流,则需要使用printf
(或fprintf
,第一个参数为stdout
):
printf("My name is %s and I am %d years old", "John Doe", 25);
// the text "My name is John Doe and I am 25 years old" gets printed to the stdout stream