gpt4 book ai didi

c++ - 是否有指向任何内容的文件指针 (FILE*)?

转载 作者:太空狗 更新时间:2023-10-29 23:31:14 25 4
gpt4 key购买 nike

出于某些原因,我需要一个不指向任何内容的文件指针 (FILE*)。这意味着我可以将它传递给 fprintf 函数并且 fprintf 忽略文件指针。

例如:

void my_function()
{
FILE* nothing = NULL; // NULL is not correct.
int n = fprintf(nothing, "PI = %f", 3.14); // Note: When nothing = NULL, error ocured.
}

是否有指向任何内容的文件指针 (FILE*)?

最佳答案

要解决您的实际问题(在注释中说明),请使用 snprintf 而不是 printf,前提是它在您的 C++ 实现中可用(在 C+ 中不能保证) +03)。为缓冲区传入空指针,为大小传入 0。什么都不写,但是返回值是格式化字符串的长度(不包括nul终止符)。

[编辑:糟糕,我忘记了 Windows 上的 snprintf 不符合 C99。如果发生截断而不是所需的长度,它会返回错误。我不知道他们将如何处理 C++0x 需要符合 C99 的 snprintf 这一事实。]

要回答您的问题,您可以在类 UNIX 系统上打开 /dev/null 或在 Windows 上打开 nul。写入生成的 FILE* 无效。然而,没有可移植零设备。

关于c++ - 是否有指向任何内容的文件指针 (FILE*)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com