Rubyのopenブロックは美しい。
open("input.txt", "r") do |handle| while x = handle ... end end
とすると,whileブロックをどう抜けようが,確実にcloseされる。 これがない言語が最近つらい。close を書くなら一箇所にしたいなあ。 ならこういうのはどうじゃ。
FILE *fp = NULL; char buf[BUFLEN]; while (1) { if (NULL == (fp=fopen("input.txt", "r"))) break; while (fgets(buf, sizeof buf, fp)) { 処理処理処理; if (条件) break; 処理処理処理; } break; } if (fp) fclose(fp);
これなら素直にgoto使えってか。