新手请教:关于sprintf_s()函数的用法
在编译下列代码时,出现以下错误:
cpp(23) : error C2664: “int sprintf_s(char *,size_t,const char *,...)”: 不能将参数 2 从“const char [3]”转换为“size_t”
请问这是什么意思?该怎么修改?
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
string dec_to_hex(double );
int main(){
double x;
string str;
cout<<"please input a decimal number:\n";
cin>>x;
str=dec_to_hex(x);
cout<<str;
}
string dec_to_hex(double x){
char* ch[20];
string str,str1;
int n=int(x),num,count;
double m=x-n;
while(n){
count=0;
num=n%16;
n=n/16;
sprintf_s(ch[count],"%x",num);
count++;
}
for(unsigned i=count;1>0;i--){
str.append(ch[i-1]);
}
cout<<str<<endl;
return str;
}