fprintf如何运作?
如果我写fprintf(outfile, "test %d %d 255/r", 255, 255);
这是什么意思? 我知道outfile是输出文件的名称。 其他值意味着什么?
答案 0 :(得分:6)
"test %d %d 255/r"
告诉它后面的参数(并且它们在那里:255,255)并且它们应该是整数类型。它们将被放置而不是%d。
结果你会在文件中得到字符串test 255 255 255
。
有关更多信息,请阅读std::fprintf
reference。
答案 1 :(得分:3)
第一个参数是文件句柄,第二个是格式化字符串,之后根据您在第二个参数中使用的格式说明符的数量,有可变数量的参数。
检查documentation,它包含您要求的所有信息。
答案 2 :(得分:3)
它是文件流的格式化输出。它像printf一样工作,区别在于printf总是输出到stdout。如果你写了
fprintf(stdout, "test %d %d 255\n", 255, 255);
它与printf
等价物相同。
它的第二个参数是格式字符串。格式字符串包含格式说明符,如%s
,%d
,%x
。你的包含两个%d
。每个格式说明符必须在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
”)。
答案 3 :(得分:1)
它与printf类似,只是将输出打印到文件中。
答案 4 :(得分:1)
第二个参数是格式字符串。任何其他参数是格式字符串中的说明符的参数(在本例中为%d)。查看http://www.cppreference.com/wiki/c/io/printf,了解printf风格的功能。