我正在使用Qt创建者,它会生成此错误:
“警告:格式'%s'需要'char *'类型的参数,
但参数2的类型为'const void *'[-Wformat]“
控制台应用程序正在运行,但如果有办法避免此错误,我感兴趣
#include <iostream>
#include <stdio.h>
using namespace std;
bool isOpen(FILE *file);
void print(const void *text);
#define FILE_IS_OPEN "The file is now open"
int main()
{
FILE *f;
f = fopen("This.txt", "w");
if(isOpen(f))
print(FILE_IS_OPEN);
fclose(f);
return 0;
}
bool isOpen(FILE *file) { return file != NULL ? true : false; }
void print(const void *text) { printf("%s\n", text); }
答案 0 :(得分:2)
只需更改
void print(const void *text);
到
void print(const char *text);
同样适用于功能定义。
答案 1 :(得分:0)
格式说明符%s
表示您正在尝试将字符串输出到控制台,因此它要求您在此处提供除char *
之外的字符串的地址,
您可以将其投放到(char *)text
并将其传递给printf
。
此外,您无法将其所拥有的void *
指针的内容输出到任何基本数据类型。