一个色值HEX码转化为rgb数值的代码,求完善。
我写的代码如下:
#include <stdio.h>
/* hex to RGB */
main()
{
int r, g, b, c, pos;
pos = 1;
while(pos > 0){
scanf("%2x",&r);
scanf("%2x",&g);
scanf("%2x",&b);
printf("R:%d\nG:%d\nB:%d\n",r, g, b);
}
return 0;
}
起码有以下问题需要完善:
1.我想在输入xxoo后程序能停止(终止循环)。
2.在输入非色值HEX码(包含长度不对和字符错误的情况)后能提示重新输入
其它请大家补充完善^^
[解决办法]
你需要查看scanf的返回值
[解决办法]
仅供参考
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
printf("k,v,n=%d,%d,%d\n",k,v,n);
if (1==k) {
p+=n;
} else if (0==k) {
p++;
} else {//EOF==k
break;
}
}
printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//k,v,n=0,123,3
//k,v,n=0,123,3
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.