私はバイナリデータをC++で読み書きする必要があります。私はofstream
とifstream
クラスから使用しますが、9,13,32のような文字を読み取ることはできません。テーマを読み書きする別の方法があるかどうか。C++でバイナリデータを読むにはどうしたらいいですか?
答えて
はこれを行いプログラムである:ここでは
#include <iostream>
#include <fstream>
int main(int argc, const char *argv[])
{
if (argc < 2) {
::std::cerr << "Usage: " << argv[0] << "<filename>\n";
return 1;
}
::std::ifstream in(argv[1], ::std::ios::binary);
while (in) {
char c;
in.get(c);
if (in) {
::std::cout << "Read a " << int(c) << "\n";
}
}
return 0;
}
は、それがLinux上で実行されているの例です。
$ echo -ne '\x9\xd\x20\x9\xd\x20\n' >binfile
$ ./readbin binfile
Read a 9
Read a 13
Read a 32
Read a 9
Read a 13
Read a 32
Read a 10
パラノイド名前空間の解決! :-) –
@Kerrek SB:なぜ、はい、http://stackoverflow.com/questions/1661912/why-does-everybody-use-unanchored-namespace-declarations-ie-std-not-std *大きな笑顔を見てください* – Omnifarious
これは機能しますが、ファイルが大きい場合は非常に非効率です。パフォーマンスを向上させるには、Stuard Golodetzメソッドを使用します。パフォーマンスをさらに向上させるには、std :: streambufを使用します。 – user763305
std::ios::binary
フラグを使用してファイルを開き、ストリーミング演算子ではなくread
とwrite
を使用します。
そこにはいくつかの例はここにある:ここでは
もっと説明してください。 –
@mehdi、彼はあなたにドキュメンテーションとサンプルをくれました。何をもっとしたいですか? – Beta
最初のリンクの例を見てください。ファイルを開き、内容を読み込んで内容をcharバッファに入れます。バッファは基本的にバイトの配列として扱われます。まさにあなたは何の説明が必要なのでしょうか?どのようにバッファを処理し、そこから値を取るか? – rzetterberg
これは基本的な例である(いずれかのエラーチェックなし!):
// Required STL
#include <fstream>
using namespace std;
// Just a class example
class Data
{
int a;
double b;
};
// Create some variables as examples
Data x;
Data *y = new Data[10];
// Open the file in input/output
fstream myFile("data.bin", ios::in | ios::out | ios::binary);
// Write at the beginning of the binary file
myFile.seekp(0);
myFile.write((char*)&x, sizeof (Data));
...
// Assume that we want read 10 Data since the beginning
// of the binary file:
myFile.seekg(0);
myFile.read((char*)y, sizeof (Data) * 10);
// Remember to close the file
myFile.close();
- 1. イメージファイルを読むにはどうしたらいいですか?
- 2. C++のポインタ構造を読むにはどうしたらいいですか?
- 3. バイナリデータをCのヘッダでPythonで読む
- 4. を読むにはどうすればいいですか?C#
- 5. Rubyでファイルを読むにはどうしたらいいですか?
- 6. PHPで.tar.gzファイルを読むにはどうしたらいいですか?
- 7. ビジュアルベーシックで.docファイルを読むにはどうしたらいいですか?
- 8. Flexで設定ファイルを読むにはどうしたらいいですか?
- 9. iPhoneデバイスでファイルを読むにはどうしたらいいですか?
- 10. プレフィックスでアプリケーションプロパティファイルを読むにはどうしたらいいですか?
- 11. PHPでC++のQStringバイナリデータを読む
- 12. ローダー内のカスタムセクションを読むにはどうしたらいいですか?
- 13. WEB-INFディレクトリのファイルを読むにはどうしたらいいですか?
- 14. C++テキストファイルからフレーズを読むにはどうすればよいですか?
- 15. Visual C++ 2010プロジェクト(OpenGL)で3dsファイルを読み込むにはどうしたらいいですか?
- 16. win32 Cプログラムでビデオカメラを読むにはどうすればいいですか
- 17. サーブレットフィルタからファイルに書き込んでEclipseで読み込むにはどうしたらいいですか?
- 18. ファイルを下から上、右から左に読み込むにはどうしたらいいですか?
- 19. twigテンプレートのsymfony2 config.ymlから設定を読み込むにはどうしたらいいですか?コントローラで
- 20. XOJOでWebからJSONを読み込むにはどうしたらいいですか?
- 21. WP7でウェブサイトから.txtファイルを読むにはどうしたらいいですか?
- 22. バイナリデータをPythonのサブプロセスコマンドからSTDOUTにエクスポートするにはどうしたらいいですか?
- 23. MSVC C++リンケージエラーを読むにはどうすればいいですか
- 24. C言語のファイルを読むにはどうすればいいですか
- 25. swiftを使用してバンドルからAppleScriptファイルを読み込むにはどうしたらいいですか?
- 26. Pimageで作成した最新のフォルダを読み込むにはどうしたらいいですか?
- 27. 読み込み時にコンテキストメニューを読み込むにはどうしたらいいですか?
- 28. C++でiniファイルを読むにはどうすればよいですか?
- 29. C++でEvolutionメールパイプを読むにはどうすればよいですか?
- 30. C#でSNMP MIBファイルを読むにはどうすればよいですか?
あなたのコードを表示してください。オープンモードのフィールドに 'std :: ifstream :: binary'を設定しましたか? –
コードのスニペット、期待する出力、得られた出力を表示してください。 –
を参照してくださいhttp://stackoverflow.com/questions/5355163/writing-binary-data-stdstring-to-an-stdofstream – davka