#include <stdio.h>
int main() {
int c;
while ((c = getchar()) != EOF) {
if (c == '\t')
printf("\\t");
else if (c == '\b')
printf("\\b");
else if (c == '\\')
printf("\\\\");
else
putchar(c);
}
return 0;
}
この場合、
hi how are you\doing
出力が得られます
hi\thow\tare\tyou\\doing
#include <stdio.h>
int main() {
int c;
while ((c = getchar()) != EOF) {
if (c == '\t') {
c = '\b';
printf("\\t");
}
if (c == '\b') {
c = '\b';
printf("\\b");
}
if (c == '\\') {
c = '\b';
printf("\\\\");
}
putchar(c);
}
return 0;
}
このプログラムを入力で実行すると
hi how are you\doing
(大きなスペースはタブです)
私はこの出力を得る
hi\t\how\t\are\t\you\doing
コード:
#include <stdio.h>
int main() {
int c;
c = '\b';
putchar(c);
return 0;
}
これを実行すると、何も得られません。出力なし。シェルプロンプトに戻ります。
より正確には、最初のプログラムでは必要な出力が得られますが、2 番目のプログラムではバックスラッシュが毎回取得されます\t
が、その後ではなく、どのようになったかを見て出力になる\
と予想されます, is '\b' が原因です? もしそうなら、それはどのように機能しますか?しかし、もしそうなら、なぜ3番目のプログラムで同じことが起こらないのですか?\\\
\t
\t\
rasbian のデフォルト gcc コンパイラと Windows 用の mingw msys-gcc パッケージでこれを実行しました。