#include<map>
#include<algorithm>
#include <iostream>
using namespace std;
int main()
{
__int64 a=1;
int b=2;
char tmp[10]={0};
sprintf(tmp,"%d,%d",a,b);
cout<<tmp<<endl;
system("pause");
}
打印结果:tmp:1,0正确结果应该是1,2为什么会打打印结果为1,0呢,原因是a是__int64类型是64位,%d是按32位,所以把a前32位放到第一个%d匹配了后面32位匹配到第二个%d了