バイナリ、テキストのどちらかを教えてくれる関数はあるでしょうか。 – プログラミング – Home

バイナリ、テキストのどちらかを教えてく...
 
通知
すべてクリア

[解決済] バイナリ、テキストのどちらかを教えてくれる関数はあるでしょうか。


ガチャピン
 ガチャピン
(@ガチャピン)
ゲスト
結合: 21年前
投稿: 16
Topic starter  

STLのbasic_ifstream、basic_ofstreamのメンバ関数に、
バイナリ、テキストの状態を教えてくれる物
というのはあるでしょうか。

どうぞ宜しくお願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

ありません。


返信引用
Daisuke
 Daisuke
(@Daisuke)
ゲスト
結合: 22年前
投稿: 11
 

>ありません。
冷た!確かにそうなんですが...

そもそもファイル自体は0と1のかたまりなのでどうやって処理するかは、開いた人の
判断になります。
バイナリで開けばそれはバイナリファイル、テキストで開けばそれはテキストファイルです。

読む側から見れば、テキストでは読めない時にそれをバイナリと認識するしかありません。
文字コードに無い部分を見つけた場合にそれをバイナリであると判断するしかないでしょう。


返信引用
通りすがり
 通りすがり
(@通りすがり)
ゲスト
結合: 24年前
投稿: 92
 

ifstreamをtextモードで開いたか、binaryモードで開いたかってことじゃないの?
ifstream::setmode()は直前の状態を戻り値として返すみたいだけど。


返信引用
ガチャピン
 ガチャピン
(@ガチャピン)
ゲスト
結合: 21年前
投稿: 16
Topic starter  

>ありません。
く~、悔しい!まっ無い物は無いですからショウガナイですね!

>冷た!確かにそうなんですが...
いえいえ、分かり易い事この上ないですぅ。
他では問題発言をなさってるようですが...
まあ、斜め45度に曲がった個性らしいですから、OKですよん!

>ifstreamをtextモードで開いたか、binaryモードで開いたかってことじゃないの?
>ifstream::setmode()は直前の状態を戻り値として返すみたいだけど。
そうなんです!これ、使えそうですね。ダミーで適当なモードをsetmode()
しつつカレントモードを得る。ほんで、即そのモードに戻しちゃう!
問題ありそうですが実験して いけそうならつかっちゃお!

ありがとうございました~!


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

この記事読んで,調べるだけ調べて書くのを忘れていたのですが……。

setmodeは,古い(標準でない)iostreamにはあるようですが,
標準のiostreamには存在しません。

つまり,
basic_ifstream::setmode
というのはありません。
#当然,basic_ifstream<char, char_traits<char> >::setmodeも存在しない。

そもそも,basic_filebufのpublicメンバにios_base::
openmodeを取得するための関数はないですから……。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

> setmodeは,古い(標準でない)iostreamにはあるようですが,
> 標準のiostreamには存在しません。

だから 'ありません' って言ったのに… ^^;


返信引用
ガチャピン
 ガチャピン
(@ガチャピン)
ゲスト
結合: 21年前
投稿: 16
Topic starter  

>setmodeは,古い(標準でない)iostreamにはあるようですが,
>標準のiostreamには存在しません。
ガビーン。がっくしガクガク。

ってーことで、ifstreamとofstreamの派生クラス
を作り、bool m_bBinaryModeのプライベートメンバ変数を用意しちゃお!
そしてbool GetBinaryMode() constでゲッツ!できるようにするのだ。
ほんでもってコンストラクタとopenメンバ関数で上のメンバ変数を設定
する事で解決なんや!

>だから 'ありません' って言ったのに… ^^;
そーですよねー。でも自分で確かめてみたかったのでーす。許してちょんまげ。

あ、そうそう。曲がった個性の角度についてですが
45じゃなくて21.5でした。申し訳ないです、失礼しました。
45と21.5じゃ全然違いますからね!

ただ、僕としては97.2度くらい根性が曲がってくれていると嬉しいのですが...
あっ、いらん事言うなって感じですか?またまたすいません。


返信引用
トオリスガリ
 トオリスガリ
(@トオリスガリ)
ゲスト
結合: 23年前
投稿: 180
 

せっかく教えてもらっていて、そのレスは・・・
人間性があらわれてるなぁ・・・

>> あるでしょうか。
という問いに対して、

> ありません。
これ以上適切な答えはないと思うけど・・・

どういった答えがほしかったの?
C++の前に日本語勉強したほうが・・・


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました