出于某些原因,我需要一个指向任何内容的文件指针(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.
}
Run Code Online (Sandbox Code Playgroud)
是否有指向空的文件指针(FILE*)?
要解决您的实际问题(在注释中说明),请使用snprintf而不是printf,只要它在您的C++实现中可用(在C++ 03中无法保证).传入缓冲区的空指针,大小为0.没有写入任何内容,但返回值是格式化字符串的长度(不包括nul终止符).
[编辑:哎呀,我忘了snprintf在Windows上不符合C99.如果发生截断,则返回错误,而不是所需的长度.我不知道他们将如何处理C++ 0x需要符合C99的事实snprintf.
要回答您的问题,您可以/dev/null在类UNIX系统或nulWindows上进行操作.写入结果FILE*无效.但是,没有便携式零设备.
| 归档时间: |
|
| 查看次数: |
3451 次 |
| 最近记录: |