c++ - fscanf 的包装功能不起作用

标签 c++ scanf variadic-functions

我尝试围绕 fscanf 创建一个包装函数,但不明白为什么它不起作用,

char name[255] = {0};
fscanf(inFile, "%s", &name);   // This work fine

但是当我这样做的时候

int WrapFScanF(File* inFile, const char* format, ...) {

    int rv;
va_list args;

va_start(args, fmt);
rv = fscanf(file, fmt, args);
va_end(args);

return rv;
}

char name[255] = {0};
WrapFScanF(inFile, "%s", &name);   // This work fine

它没有用。有任何想法吗?谢谢!

最佳答案

您真的很想阅读关于 vfscanf() 的内容.当您有 va_list 时,请使用它代替 fscanf(),因为 va_list 不能那样使用。

关于c++ - fscanf 的包装功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13692926/

相关文章:

types - 为什么 Clojure 变量 arity args 会根据用途获得不同的类型?

c - 为什么 va_arg 在 char* 类型的变量参数列表的末尾返回 NULL?

c++ - 捕获多个异常

c++ - g++ 编译器提示在堆栈上分配

c - 在for循环中运行scanf时出现逻辑错误,如何修复?

c - 编码解码请发现故障

c - fscanf 转结构体数组

c++ - 类中的结构

C++ sscanf 在编译时抛出不相关类型的 "no suitable conversion"错误

c - 如果 `"转换为 "` exist in `,为什么 `char` %c `int` printf`?