なぜ値が得られるのかを理解するための助けを探しています。KL25Z マイクロ コントローラ (32 ビット アーキテクチャ) で値を選択して設定するための非常に基本的なメニューがあります。255 を超える値を出力しない int があります。何が間違っていますか?
beacon.h
typedef struct _payload_t {
int t1_range;
} PAYLOAD_T;
beacon.c
#define BUFFSIZE 100
PAYLOAD_T payload;
int main (int argc, char *argv[])
{
char line[2];
int ret, select;
// print menu
print_menu();
// get menu input
ret = readline(line, BUFFSIZE, stdin, stdout);
select = atoi(line);
switch(select)
{
case 1:
uprintf(" Target 1 Starting Range: ");
ret = readline(line, BUFFSIZE, stdin, stdout); //--> 257
payload.t1_range = atoi(line);
printf(" Selection = %s\r\n", line); //--> 257
printf("(%d)\r\n",payload.t1_range); //--> 1
break;
... rest of case
}
return 0;
} //end main
255 を超える値が入力されるまではすべて問題なく動作しますが、表示される値は 1 に戻っているように見えます。
どんな助けや指示も大歓迎です。
ありがとう!