これを行うにはどうすればいいですか?また、簡単な方法がありますか? Boostや何かのようなlibを使っている?C++のjavaのwriteIntメソッドによって書き込まれたファイルからintを読み込みますか?
答えて
intを書き出すDataOutputStreamは、上位バイトを先頭に4バイトのintを書き出します。 char *への読み込み、reinterpret、バイトオーダーの変換が必要な場合はntohlを使います。
ifstream is;
is.open ("test.txt", ios::binary);
char* pBuffer = new char[4];
is.read (pBuffer, 4);
is.close();
int* pInt = reinterpret_cast<int*>(pBuffer);
int myInt = ntohl(*pInt); // This is only required if you are on a little endian box
delete [] pBuffer;
'sizeof(int)!= 4'のプラットフォームにヒットするまで、うまくやります。または、整数が1の補数または符号ビットであり、2の補数でないもの(ISO C99で許可されているもの)。 –
...およびISO C++ –
整数の補数または符号ビットはどのプラットフォームでですか?私が知りたいのですが。 – anio
アイデア:
- 変換/必要に応じてバイトを解釈し、その後、ストレートバイナリとしてそれを読んでください。したがって、Javaがintに4バイトを書き込んだ場合、4バイトで読み込みます。変更するエンディアンがあれば、バイト配列をC++のintにキャスト(またはコピー)してください
- Javaコードを変更することができれば、C++で読める共通のものとして書くことができますUTF-8のテキストまたはアスキー、またはGoogleプロトコルバッファーの形式などがあります。
それを行うための唯一のクロスプラットフォームな方法は、(つまり、char
によってchar
である)、それをバイト単位で読み、それらのうちの整数を構築することです。 int
は32ビット値を保持するのに十分な幅であるとは限りませんので、long
を使用します。私はあなたがここにchar[4]
配列にバイトを読んだと仮定します(他の回答が既に実証されている操作方法その):
char bytes[4];
...
long n = (long(bytes[0]) << 24) | (long(bytes[1]) << 16) |
(long(bytes[2]) << 8) | long(bytes[3])
- 1. Ruby:システムプロセスによって書き込まれたファイルからの読み込み
- 2. ファイルから読み込み、Javaのファイルに書き込む
- 3. int型のC++読み込みと書き込み?
- 4. xlsとxlsxからの読み込みと書き込みは、Javaのファイルexcher
- 5. ファイルからの読み込みやJavaでのファイルへの書き込みに問題があります
- 6. C/C++からメモリにバッファを書き込み、JNIなしでJavaでバッファを読み込みます。
- 7. Javaの同じファイルへの読み込みと書き込み
- 8. C++/CLI - 書き込まれる変数からの読み込み
- 9. ファイルからバイト[]を読み込み、読み込みます
- 10. stdoutに書き込んでCのstdinから読み込みます
- 11. Visual C++/CLIでファイルに書き込み、ファイルから読み込む方法は?
- 12. ファイルへのC++の読み込みと書き込み
- 13. Java:ファイルの読み込み/書き込み
- 14. Javaでの同時読み込み/書き込みファイル
- 15. pythonバイナリファイルからデータを読み込み、符号付きintに書き込む
- 16. Javaを使用して積極的に書き込まれているファイルから読み込み[改善]
- 17. java InputMismatchExceptionファイルからの読み込み
- 18. Cのファイルからの読み込み
- 19. phpオブジェクトをテキストファイルに書き込み、読み込みますか?
- 20. ファイル読み込みと書き込み
- 21. XMLファイルからの読み込みC#
- 22. c:ファイルからの読み込み
- 23. C++ .csvファイルからの読み込み
- 24. ファイルからの読み込み - C
- 25. C#PCLファイルからの読み込み
- 26. C:リンクされたリストとファイルへの書き込みと読み込み
- 27. Java、現在のディレクトリからファイルを読み込みますか?
- 28. パイプを使ってIntの配列を書き込んで読み込み
- 29. Cコードでのlong int値の書き込みと読み込み
- 30. Cリンクリストをファイルから読み込んで別のファイルに書き込む
可能な重複:http://stackoverflow.com/questions/1154991/load-バイナリファイルを使用する-fstream –