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使えってか。