我想打印什么用户插入命令行为HEX 当我声明我的变量为:unsigned char myargv [] = {0x00,0xFF}; 它工作得很好,我得到:11111111 但是当我从传递命令行参数我我得到不同的值 例子:MYAPP.EXE FF 我得到:01100010从命令行输入参数为十六进制
#include <iostream>
#include <string>
using namespace std;
void writeToScreen(unsigned char *data);
int main(int argc,unsigned char *argv[]){
if(argc != 2){
unsigned char myargv[] = {0x00,0xFF};
writeToScreen(&myargv[1]);
}else{
writeToScreen(argv[1]);
}
system("pause");
return 0;
}
void writeToScreen(unsigned char *data){
unsigned char dat;
dat =*(data);
for (unsigned int i=0;i<8;i++)
{
if (dat & 1)
cout<<"1";
else
cout<<"0";
dat>>=1;
}
cout<<endl;
}
你调试了吗? – StoryTeller
如果使用'unsigned char myargv [] = {'F','F'};'比较输出。你有没有在某处看到相似之处? – molbdnilo