fprintf如何在C ++中工作?

时间:2009-09-03 19:12:23

标签: c++ printf internals

fprintf如何运作?

如果我写fprintf(outfile, "test %d %d 255/r", 255, 255);

这是什么意思? 我知道outfile是输出文件的名称。 其他值意味着什么?

5 个答案:

答案 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风格的功能。