C 格式[-Wformat extra args]的参数太多
这行代码在dev中运行良好,但在ubuntu中不行,因为它会生成以下错误C 格式[-Wformat extra args]的参数太多,c,C,这行代码在dev中运行良好,但在ubuntu中不行,因为它会生成以下错误 fprintf(fptr2,"\n\n:%s",ctime(&t),"\t ","\t"); 我该怎么办?fprintf接受数量可变的参数: 文件*输出流 格式字符串 每个%格式都有一个额外的参数,如果指定为*,则前面有一个可选的宽度和/或精度 您应该只有一个额外的参数,%s格式的字符串 额外的参数“\t”和“\t”将被忽略,但编译器会为您提供诊断,因为它们的存在可能表明某些编程错误 这样的警告是一件好事,
fprintf(fptr2,"\n\n:%s",ctime(&t),"\t ","\t");
我该怎么办?
fprintf
接受数量可变的参数:
输出流文件*
- 格式字符串
- 每个
格式都有一个额外的参数,如果指定为%
,则前面有一个可选的宽度和/或精度*
%s
格式的字符串
额外的参数“\t”
和“\t”
将被忽略,但编译器会为您提供诊断,因为它们的存在可能表明某些编程错误
这样的警告是一件好事,因为它们可以防止许多愚蠢的错误,从打字错误到参数类型不匹配。您的
dev
环境配置为对这些问题保持沉默,这对您不利。查看以修复它:添加编译器选项,例如-Wall-W
或-Weverything
fprintf
接受的参数数量可变:
输出流文件*
- 格式字符串
- 每个
格式都有一个额外的参数,如果指定为%
,则前面有一个可选的宽度和/或精度*
%s
格式的字符串
额外的参数“\t”
和“\t”
将被忽略,但编译器会为您提供诊断,因为它们的存在可能表明某些编程错误
这样的警告是一件好事,因为它们可以防止许多愚蠢的错误,从打字错误到参数类型不匹配。您的
dev
环境配置为对这些问题保持沉默,这对您不利。查看您以修复它:添加编译器选项,例如-Wall-W
或-Weverything
更改为:fprintf(fptr2,“\n\n:%s\t\t”,ctime(&t))代码>“工作正常”。著名的最后一句话。格式字符串后有3个参数,但格式字符串中只有一个%s
。你希望它和额外的参数有什么关系?这是一个警告,不是一个错误。代码在任何地方都执行相同的操作。更改为:fprintf(fptr2,“\n\n:%s\t\t”,ctime(&t))代码>“工作正常”。著名的最后一句话。格式字符串后有3个参数,但格式字符串中只有一个%s
。你希望它和额外的参数有什么关系?这是一个警告,不是一个错误。代码在任何地方都做同样的事情。
warning: too many arguments for format [-Wformat-extra-args]
fprintf(fptr2,"\n\n:%s",ctime(&t),"\t ","\t");
^