課題
空白、タブ、改行を数えるプログラムを書け。
ソースコード
#include <stdio.h> int main(void) { int c, ns, nt, nl; ns = nt = nl = 0; while ((c = getchar()) != EOF) { if (c == '\n') ++nl; /* 改行 */ if (c == '\t') ++nt; /* タブ */ if (c == ' ') ++ns; /* スペース */ if (c == EOF) break; } /* 印字 */ printf("Line:%d, Tab:%d, Space:%d", nl, nt, ns); }
実行内容
「fdsa」、Tabを3回、スペース2回、Enter。
その後Ctrl+C (getchar()が異常終了してEOFを返す)
実行結果
fdsa Line:1, Tab:3, Space:2
補足
Ctrl+Cにより異常終了した場合は、それまでの入力は無視される。
hiroyuki8murai.hatenablog.com