fprintf 是如何工作的?
如果我写fprintf(outfile, "test %d %d 255/r", 255, 255);
这是什么意思?我知道 outfile 是输出文件的名称 my 。其他值是什么意思?
"test %d %d 255/r"
告诉它之后将是参数(它们在那里:255、255)并且它们应该是整数类型。它们将被放置而不是 %d。
结果,您将test 255 255 255
在文件中获得字符串。
有关更多信息,请阅读std::fprintf
参考。
第一个参数是文件句柄,第二个是格式化字符串,之后有可变数量的参数,具体取决于您在第二个参数中使用的格式说明符的数量。
检查文档,它包含您要询问的所有信息。
它是文件流的格式化输出。它像 printf 一样工作,不同之处在于 printf 总是输出到标准输出。如果你写
fprintf(stdout, "test %d %d 255\n", 255, 255);
它将与printf
等价物相同。
它的第二个参数是格式字符串。格式字符串包含格式说明符,例如%s
, %d
, %x
。你的包含两个%d
s。每个格式说明符必须在fprintf
. 你的有两个%d
说明符,所以有两个数字参数:
fprintf(outfile, "Here are two numbers: %d, %d", 4, 5);
同样,您可以使用字符串说明符 ( %s
)、十六进制说明符 ( %x
) 或 long/long long int 说明符 ( %ld
, %lld
)。以下是它们的列表:http ://www.cppreference.com/wiki/c/io/printf 。请注意,对于所有 C 格式的 i/o 函数(如 sprintf 和 scanf),它们都是相同的。
此外,在您的原始示例中,“ /r
”将直接打印“ /r
”。看起来您正在尝试回车(“ \r
”)。
它类似于printf,它只是将输出打印到文件中。
第二个参数是格式字符串。任何附加参数都是格式字符串中说明符的参数(在本例中为 %d)。查看http://www.cppreference.com/wiki/c/io/printf以获得有关 printf 样式函数的良好介绍。