This question already has answers here:
What can happen if printf is called with a wrong format string?
(5个答案)
4年前关闭。
当在sprintf中使用错误的格式字符串时,我有一定的疑问。例如,%f用作整数的格式说明符。为什么不进行隐式转换?
考虑下面的程序。
(5个答案)
4年前关闭。
当在sprintf中使用错误的格式字符串时,我有一定的疑问。例如,%f用作整数的格式说明符。为什么不进行隐式转换?
考虑下面的程序。
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
int i = 0;
char temp[50];int a = 1;
sprintf( temp, "%f",a);
puts(temp);
return 1;
}
最佳答案
因为该函数不知道您要发送什么类型的函数,除非您提供适当的参数。
根据定义,可变参数函数没有未定义参数的任何类型信息,并且必须自己确定从给定数据中获取什么。
10-04 21:15