C++相談室 part166 (569レス)
C++相談室 part166 http://mevius.5ch.net/test/read.cgi/tech/1745631298/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
533: デフォルトの名無しさん (ワッチョイ ffa1-BzvG) [sage] 2025/07/06(日) 11:24:16.88 ID:B20RUTJT0 二転三転してすまんこ考えを改めたはサーセン……orz 入力ストリームはシリアルポートみたいな途中で入力がブチ切れる危険性があるブツである こともあるから、 ケースB) (空白) (非空白文字列の期待する全体) ケースB') (空白) (非空白文字列が受信タイムアウトにより途中で切れたもの) の区別が!isになったというだけでは区別がつかない。一方、 (空白) (非空白文字列) (空白) まで受け取ったら、(非空白文字列) がタイムアウトにより途中で切れたものでないことが確実となりワカル 故に、ケースBやB'みたいな条件を扱うこと自体がライブラリの仕様想定外なのかもしれん…… 通常のテキスト読み込みでは行末に改行文字(空白文字のうち)が1文字以上あるから、この枠内で話が収まる。 Unixみたいに改行文字が '\n' 1文字だけな環境で、改行文字を読み飛ばして 呼び出し元に返さないgetline()みたいなやつで読んだ結果を istringstreamしようとするとケースBが顕在化するが、 この場合は強制的に末尾に空白文字を付けることができうる そうすればケースBは発生しない(ただし空白文字を付け忘れるとバグ http://mevius.5ch.net/test/read.cgi/tech/1745631298/533
536: デフォルトの名無しさん (ワッチョイ ffa1-BzvG) [sage] 2025/07/06(日) 12:43:07.86 ID:B20RUTJT0 >>529 ゴメ operator std::istream::bool() か std::istream::fail() だけでとりま解決したわスマンカッタorz https://ideone.com/Fd5zV6 オンメモリのストリームである std::istringstream であっても>>533のケースB'に当たるケース (オンメモリなので非空白文字列でデータが終わっている場合)においてbadbitがセットされるっぽい この挙動がおま環でないかどうかはわからん…… http://mevius.5ch.net/test/read.cgi/tech/1745631298/536
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.023s