Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 格式[-Wformat extra args]的参数太多_C - Fatal编程技术网

C 格式[-Wformat extra args]的参数太多

C 格式[-Wformat extra args]的参数太多,c,C,这行代码在dev中运行良好,但在ubuntu中不行,因为它会生成以下错误 fprintf(fptr2,"\n\n:%s",ctime(&t),"\t ","\t"); 我该怎么办?fprintf接受数量可变的参数: 文件*输出流 格式字符串 每个%格式都有一个额外的参数,如果指定为*,则前面有一个可选的宽度和/或精度 您应该只有一个额外的参数,%s格式的字符串 额外的参数“\t”和“\t”将被忽略,但编译器会为您提供诊断,因为它们的存在可能表明某些编程错误 这样的警告是一件好事,

这行代码在dev中运行良好,但在ubuntu中不行,因为它会生成以下错误

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");     
                ^