我重定向scanf函数,代码如下:
[mw_shl_code=applescript,true]int fgetc(FILE *f)
{
uint8_t ch;
HAL_UART_Receive(&IUART,(uint8_t *)&ch, 1, 0xFFFF);
return ch;
}[/mw_shl_code]
只有在scanf("%c",..)时,可以正常读入输出.
如果scanf("%s",..)或者scanf("%d",...)总是丢失第一个字符.试验如下:
- 如果scanf("%s",..)我输入abc回车,printf只输出bc
- 如果我scanf("%d",..)我输入123回车,printf只会输出23.
- 如果我scanf("%c",..),我输入a不用回车,就会输出a.
这是什么原因呢?
一周热门 更多>