本人C++初学者,编译时老提示:错误 1 error C2440: “初始化”: 无法从“const char [3]”转换为“char
我建的是CLR->WIN窗体控件程序,做的是一个练习,单击按钮触发事件,在事件里面调用一个函数,wchar_tgetWeekName(wchar_tf);private:...
我建的是CLR->WIN窗体控件程序,做的是一个练习,单击按钮触发事件,在事件里面调用一个函数,
wchar_t getWeekName(wchar_t f);
private: System::Void transChar(System::Object^ sender, System::EventArgs^ e) {
//char* b = getWeekName(&L"dfdc");
char a = "00";
//this->num->Text = getWeekName(a);
}
};
原来是调用函数的,后来发现老提示这个转换错误,后来直接在该函数里面定义一个字符型的变量a,也还是编译不过,不知道是什么问题,这个函数是在头文件Form1.h里面的,按别人说的修改属性变成多字符集无效,写成 char a = _T("00");也无效,难道在这个函数里面不能定义字符型?为什么会有这个错误,是什么原因呢? 展开
wchar_t getWeekName(wchar_t f);
private: System::Void transChar(System::Object^ sender, System::EventArgs^ e) {
//char* b = getWeekName(&L"dfdc");
char a = "00";
//this->num->Text = getWeekName(a);
}
};
原来是调用函数的,后来发现老提示这个转换错误,后来直接在该函数里面定义一个字符型的变量a,也还是编译不过,不知道是什么问题,这个函数是在头文件Form1.h里面的,按别人说的修改属性变成多字符集无效,写成 char a = _T("00");也无效,难道在这个函数里面不能定义字符型?为什么会有这个错误,是什么原因呢? 展开
1个回答
展开全部
错误说的很明确了,你用一个长度为3,数据类型为char的数组,给一个char变量赋值,当然是错的
char a="00";
改成
char a[3]="00";
或者
char *a="00";
但考虑到你的
wchar_t getWeekName(wchar_t f);
参数是wchar_t,
而
typedef unsigned short wchar_t;
所以最好就是这样:
char a='0';//就一个字符0
char a="00";
改成
char a[3]="00";
或者
char *a="00";
但考虑到你的
wchar_t getWeekName(wchar_t f);
参数是wchar_t,
而
typedef unsigned short wchar_t;
所以最好就是这样:
char a='0';//就一个字符0
更多追问追答
追问
可是我的那getWeekName(wchar_t f);想接受的是字符串数据,能是一个字符,我把wchar_t a[]="00";编译也没有错误了,但是函数还是会现在错误,我要怎么让我的wchar_t getWeekName(wchar_t f);接受字符串。原来我写的是char a="00";改成单引号后就没问题了,这里单双引号对程序是有什么区别的吗?
追答
那你就要改
wchar_t getWeekName(wchar_t f);
这个函数的实现了
wchar_t不是字符串他是unsigned short类型。
改成:
wchar_t getWeekName(char* f);
然后
char *a="00";
这样你就可以这样调用了:
getWeekName(a);
但是你整个getWeekName函数都要重写。
char a='0';//a是一个字符变量,赋值一个字符0
char a[3]="00" ;// a是一个字符数组,每个元素都是一个字符变量,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询