在c语言中fprintf的原型是
int fprintf (FILE* stream, const char*format,...)
但下面的语句也成立
FILE *in;
in = fopen("AUTOEXEC.BAT", "rt");
fprintf(in, "Can not open inputfile.\n");
该程序没有用到 第二个format参数也能运行,难道第二个参数可有可无吗?
这不是用到了 第二个参数嘛,【"Can not open inputfile.\n"】 这就是啊, 你这里是 没有格式化的参数吧
fprintf(in, "Can not open inputfile.\n");
不知道你这个问题是否已经解决, 如果还没有解决的话:回答:在调用fprintf函数时必须要给出第二个format参数,因为该参数是格式化输出的必要参数,如果没有该参数,则无法输出需要的格式化内容。但是如果你不需要该参数,可以使用一个简单的占位符来代替,例如使用%s。以下是一个示例代码:
fprintf(file, "%s", "Hello World!");
这里的%s是一个简单的占位符,它代表输出一个字符串。你也可以在该参数中使用其他占位符来输出其他类型的值,例如%d代表输出整数,%f代表输出浮点数等。以下是一个示例代码:
int num = 10;
float f = 3.14;
char str[] = "Hello";
fprintf(file, "num = %d, f = %f, str = %s", num, f, str);
这里的%d代表输出整数,%f代表输出浮点数,%s代表输出字符串,输出的结果为:num = 10, f = 3.140000, str = Hello。