v0.122

	while (!stdin.eof()) {
		char c;
		stdin.read(c);
		text ~= c;
	}

上のようなコードで標準入力からchar[]に読み込もうとすると ReadException が投げられる。~
eof()が機能していない。~
.seekable が false だと eof()が機能しないため。~
stdin のところが Fileのインスタンスだったりすると .seekable が true なのですんなり動く。~
readLine()がstdinでも普通に動くのは、このメソッドの中は ReadException を catchするようになっているから。~

結論、stdin と Streamは同じようには扱えない。

	try {
		while (!stdin.eof()) {
			char c;
			stdin.read(c);
			text ~= c;
		}
	} catch (ReadException e) {
		if (!stdin.eof()) throw e;
	}

readLine() 式の解決法。~
例外が飛ぶ頃には EOF に達したというフラグが立っている。~
Streamもこれで扱えるので一応同じ扱いはできますが・・・なんかねぇ。~


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS