から読み取るプログラムを作成してからstdin
、読み取ったものを に書き込みstdout
、見つかったエスケープされた 16 進数をエスケープ解除します。読みたい数字はすべて8ビットです。これは私がこれまでに持っているものです
while((c = fgetc(stdin)) != EOF) {
if(c == '%') {
fscanf(stdin,"%x",&r);
printf("%i \n",r);
}
}
%FFF
これは正常に機能しますが、標準入力に何かを書き込むと、それが 3 桁の 16 進数として読み取られるという事実を除きます。fscanf
2 文字のみの読み取りに制限するにはどうすればよいですか? 次の 2 文字をバッファに読み込むことを考えましたsscanf'ing
が、それは私にはかなり洗練されていないように感じます。