我是程序员的新手,我已经完成了第一次任务。赋值是关于将十进制输入转换为十进制和十六进制。 如果我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;输入,我认为它们属于。答案 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.