STLのbasic_ifstream、basic_ofstreamのメンバ関数に、
バイナリ、テキストの状態を教えてくれる物
というのはあるでしょうか。
どうぞ宜しくお願いします。
ありません。
>ありません。
冷た!確かにそうなんですが...
そもそもファイル自体は0と1のかたまりなのでどうやって処理するかは、開いた人の
判断になります。
バイナリで開けばそれはバイナリファイル、テキストで開けばそれはテキストファイルです。
読む側から見れば、テキストでは読めない時にそれをバイナリと認識するしかありません。
文字コードに無い部分を見つけた場合にそれをバイナリであると判断するしかないでしょう。
ifstreamをtextモードで開いたか、binaryモードで開いたかってことじゃないの?
ifstream::setmode()は直前の状態を戻り値として返すみたいだけど。
>ありません。
く~、悔しい!まっ無い物は無いですからショウガナイですね!
>冷た!確かにそうなんですが...
いえいえ、分かり易い事この上ないですぅ。
他では問題発言をなさってるようですが...
まあ、斜め45度に曲がった個性らしいですから、OKですよん!
>ifstreamをtextモードで開いたか、binaryモードで開いたかってことじゃないの?
>ifstream::setmode()は直前の状態を戻り値として返すみたいだけど。
そうなんです!これ、使えそうですね。ダミーで適当なモードをsetmode()
しつつカレントモードを得る。ほんで、即そのモードに戻しちゃう!
問題ありそうですが実験して いけそうならつかっちゃお!
ありがとうございました~!
この記事読んで,調べるだけ調べて書くのを忘れていたのですが……。
setmodeは,古い(標準でない)iostreamにはあるようですが,
標準のiostreamには存在しません。
つまり,
basic_ifstream::setmode
というのはありません。
#当然,basic_ifstream<char, char_traits<char> >::setmodeも存在しない。
そもそも,basic_filebufのpublicメンバにios_base::
openmodeを取得するための関数はないですから……。
> setmodeは,古い(標準でない)iostreamにはあるようですが,
> 標準のiostreamには存在しません。
だから 'ありません' って言ったのに… ^^;
>setmodeは,古い(標準でない)iostreamにはあるようですが,
>標準のiostreamには存在しません。
ガビーン。がっくしガクガク。
ってーことで、ifstreamとofstreamの派生クラス
を作り、bool m_bBinaryModeのプライベートメンバ変数を用意しちゃお!
そしてbool GetBinaryMode() constでゲッツ!できるようにするのだ。
ほんでもってコンストラクタとopenメンバ関数で上のメンバ変数を設定
する事で解決なんや!
>だから 'ありません' って言ったのに… ^^;
そーですよねー。でも自分で確かめてみたかったのでーす。許してちょんまげ。
あ、そうそう。曲がった個性の角度についてですが
45じゃなくて21.5でした。申し訳ないです、失礼しました。
45と21.5じゃ全然違いますからね!
ただ、僕としては97.2度くらい根性が曲がってくれていると嬉しいのですが...
あっ、いらん事言うなって感じですか?またまたすいません。
せっかく教えてもらっていて、そのレスは・・・
人間性があらわれてるなぁ・・・
>> あるでしょうか。
という問いに対して、
> ありません。
これ以上適切な答えはないと思うけど・・・
どういった答えがほしかったの?
C++の前に日本語勉強したほうが・・・