1-10

これ、バックスペースの入力ってどうやってテストするんだろと思ったけど、
echoで出力した文字列をパイプでつないでやって解決。

#include <stdio.h>

/*
 * タブを\tに、バックスペースを\bに、バックスラッシュを\\に置き換え、
 * 入力を出力に複写する
 **/
main(){
//	printf("%d,%d,%d",'\t','\b','\\');	// -> 9,8,92
	int c;

	while((c = getchar() ) != EOF){
		if (c == '\t' ){
			putchar('\\');
			putchar('t');
		}else if (c == '\b' ){
			putchar('\\');
			putchar('b');
		}else if (c == '\\'){
			putchar('\\');
			putchar('\\');
		}else{
			putchar(c);
		}

	}
	exit(0);

}
:!echo '1\t23\b\'
1       2\


:!echo '1\t23\b\' | ./1-10
1\t23\b\\

上で、\tがタブ表記されていることと、\bがバックスペースになって3が表示されていないことがわかる。

それをパイプで標準出力から作成したプログラムに流し込んで、テストを実行。

確認OKなはず。