我在实现转换功能方面遇到了麻烦。
在zj_X
函数中我想将字符串作为参数传递给函数并将其转换为char[]
类型用于转换十六进制,但似乎运行调试后获得的结果似乎不是很好。
这是IDE向我报告的错误:
H:\ CPP \ tst_jz \ main.cpp | 11 |错误:未在此范围内声明'q1'|
我使用的IDE是代码块。
#include <iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
using namespace std;
void zj_10(int i,int j);
void zj_x();
int main()
{
zj_10(20,2);
zj_x(q1,8);
return 0;
}
void zj_10(int i,int j)
{
char num[100];
cout<<"转换后的结果为:";
itoa(i,num,j);
cout<<num<<endl;
}
void zj_x(string str,int i)
{
char buf[10];
int length = str.copy(buf, 9);
buf[length] = '\0';
char *p1;
cout<<"转换的结果为:"<<strtol(buf,&p1,i);
}
答案 0 :(得分:0)
这里的问题是你的main函数中没有名为q1的变量,但是你传递了它。这就是错误。因此,首先尝试声明和定义该变量,或者如果要将q1作为字符串传递,则发送"q1"
而不仅仅是q1
答案 1 :(得分:0)
如果q1是字符串文字,则将其括在DOUBLE引号中,如&#34; q1&#34;。
aravind_reddy告诉你使用单引号:
如果您想将q1作为字符串传递,请发送&#39; q1&#39;而不仅仅是q1
但这些仅用于字符文字,例如&#39; a&#39;,&#39; 1&#39;等。 字符串文字必须用双引号括起来。
如果q1是字符串变量的名称,那么显然需要声明它。