- - PR -
iostream.h→iostreamへ変更したらバイナリモードで開けなくなった。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-02-19 15:06
こんにちは1048です。
最近、私の開発環境をVC++6.0からVC++.NETへ変更したので、 iostream.hをiostreamに変更したら どうやら、クラスの構造が変わっていて、エラーがたくさん出てしまいました。 それについて、いろいろ調べながら直していたのですが、 setmode(filebuf::binary)がなくなっていて、バイナリモードの指定は オープン時にするそうですが、オープンがうまくできません。(コンパイルは通る) プログラムを走らせてファイルサイズを確認してみると、-1となっているのです。 どなたか解決法をご存知の方がいたらご教示ください。 ↓↓↓↓↓ソース抜粋↓↓↓↓↓ buffer = (unsigned char *)malloc(32532); std::fstream fs; fs.open("ファイルの名前" std::ios::binary); fs.seekg(0, std::ios::end ); unsigned long filesize = fs.tellg(); fs.seekg(0, std::ios::beg); while(totalwritten != filesize) { fs.read((char*)buffer, 32532); amtread = fs.gcount(); /* bufferをデータベースへ書き込む処理 */ totalwritten = totalwritten + amtread; } ○開発環境 WindowsXp VC++6.0→VC.Net Win32 Applicationで開発 [ メッセージ編集済み 編集者: 1048 編集日時 2004-02-19 15:12 ] |
|
投稿日時: 2004-02-19 15:28
iostreamを使ったことがないので間違っているかもしれませんが
Open時の読み込みモードの指定が足りないのではないでしょうか? fs.open("ファイルの名前" std::ios::binary|std::ios::in); と変更したらうごきませんか? |
|
投稿日時: 2004-02-19 15:43
うおおーーー!!!
動きました!!! ありがとうございます。モードの指定が足りなかったんですね。 すばやい対応感謝いたします。 |
1