我需要用C++读写二进制数据.我使用from ofstream
和ifstream
classes但它不能读取像9,13,32这样的字符.如果有另一种方法来读写主题.
使用打开文件std::ios::binary
标记,然后用read
和write
,而不是流操作符.
这里有一些例子:
http://www.cplusplus.com/reference/iostream/istream/read/
http://www.cplusplus.com/reference/iostream/ostream/write/
这是一个执行此操作的程序:
#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;
}
Run Code Online (Sandbox Code Playgroud)
这是在 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27591 次 |
最近记录: |