十进制到十六进制转换器

时间:2014-09-18 21:08:02

标签: c

我是程序员的新手,我已经完成了第一次任务。赋值是关于将十进制输入转换为十进制和十六进制。 如果我fx类型15(输入),我应该得到15和F作为输出。 我不是从头开始构建程序。我的老师在Atmel Studio给了我一个模板(模板叫做BasicIO,如果我没记错的话)。 这是我到目前为止所做的:

#define F_CPU 16000000UL

#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
#include "usart.h"

int main(void) {    

    uart_init(); // open the communication to the microcontroller
    io_redirect(); // redirect input and output to the uart

    int input=0;

    while(1) {
        printf("Input a number\n");
        scanf("%d %x", &input, &input);
        printf("You wrote %d\n", input);        
    }

    return 0;
}

编译程序时没有错误,但是当我输入内容时,我从来没有得到可理解的输出。有人能看到原因吗?我应该改变什么?

这当然是C编程,我使用Atmel Studio制作程序,并使用Arduino在Realterm中运行它。

PS:正如我所说,这是一个模板。我添加的唯一内容是%d,%x和&amp;输入,我认为它们属于。

1 个答案:

答案 0 :(得分:1)

而不是

    scanf("%d %x", &input, &input);
    printf("You wrote %d\n", input);  

你需要

    scanf("%d", &input); // Read one number
    printf("You wrote %d %x\n", input, input);  // Write it out in decimal and hex.