加上l表示是宽字符,占2个字节,类型是wchar_t,你错是因为你传过去的字符串是char类型,类型不对
比如l'a':一个宽字符a,2字节
l"abcd":一个宽字符串abcd,10字节
mfc中字符串最好用_t宏括起来:
pdc->textoutw(30,
30,
_t("lin"));
pow是double型的返回值,写错了就会有这样的提示。
pow函数的重载如下:
C++提供以下几种pow函数的重载形式:
1、double pow(double X,int Y);
2、float pow(float X,float Y);
3、float pow(float X,int Y);
4、long double pow(long double X,long double Y);
5、long double pow(long double X,int Y);
使用的时候应合理设置参数类型,避免有多个“pow”实例与参数列表相匹配的情况。
其中较容易发生重载的是使用形如:
int X,Y;
int num=pow(X,Y);
这是一个比较常用的函数,但是编译器会提醒有多个“pow”实例与参数列表相匹配。
可以使用强制类型转换解决这个问题:num=pow((float)X,Y);
主要是你不理解模板使用,模板使用需要有模板参数,按你的题意你这个问题使用格式如下:
Insertion<int>(num,n); // <>里面就是模板参数,另外num已是 T [],再加[]就变成T [][]了
当然这样也行:Insertion<int>(num[],n); // 但这个不合你的题意
另外,你cin>>num[i];,这个num没有初始化就用了,这程序到这就崩溃了,你需要在用它前,给它分配内存,如 cin>>n; num= new int(n);
你复制了这个中文(了,把它改成半角,num= new int(n);必须加在cin>>n;后面。
你第一个参数是文件的路径字符串,它是char型的。但是open函数需要的是(LPCTSTR)型的路径字符串。你第一个参数不符合要求,系统不认为这个参数有效,自然就会告诉你缺少参数了。你只要在"d:\\dd\\tryTRY"前面加个LPCTSTR,做个强制转换就行了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)