9 years, 6 months ago.

scanfが旨く使えない

メモリダンププログラムを作っていますが、scanf実行時にコンソールに入力した文字が表示されません。 旨く表示させる方法はありませんか? 以下に作成したプログラムを添付します。

include "mbed.h" Serial pc(USBTX, USBRX); tx, rx int main() { pc.baud(115200); int count; char *adr,*st,*end; printf("star adr,end adr\n"); pc.scanf("%x %x",&st,&end); count=(int)st; for(adr=st;adr<=end;adr++){ printf("%02x ",*adr); if(((++count)%16)==0){ printf("\n"); } }

}

1 Answer

9 years, 6 months ago.

scanf() は、標準入力から書式付きで変数に値を読み込む関数なので、コンソールに対してエコーバックは行いません。 putc(), getc(), sscanf() の組み合わせで実現させるか、ターミナルソフト側の設定でエコーバックを行うことが出来ると思います。例えば、Tera term等では、「ローカルエコー」機能を有効にすることでコンソールからの入力文字を表示されることが出来ます。

Accepted Answer

ありがとうございました。Tera termの、「ローカルエコー」機能をを使用することで、とりあえず解決です。

posted by king tar 30 Nov 2014