首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个色值HEX码转化作rgb数值的代码,求完善

2013-01-07 
一个色值HEX码转化为rgb数值的代码,求完善。我写的代码如下:#include stdio.h/* hex to RGB */main(){int

一个色值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.

热点排行