C ++使用流操作符

时间:2016-11-30 06:25:56

标签: c++ io binary

使用C ++中的二进制I / O进行简单测试。 看起来在连续写入两个值之后,从同一个文件中读取会连接这两个数字。

  • 在两个整数的情况下,第一个整数获取所有值,第二个整数保持之前的值(例如,设a = 111,b = 234;读数结果为a = 111234,b = what-不断旧值)
  • 在两个浮点数的情况下,连接是部分的,这意味着第二个浮点数仍然有一些值,虽然不正确(例如,设a = 111.1,b = 234.4;读数结果为a = 111.123,b = 0.4)

我知道我可以使用文件流的read()和write()函数来精确控制要读取的字节数,在这种情况下一切正常。但我只是想知道我是否应该永远不要使用<<和>>,或者我使用它们不正确?

#include <iostream>
#include <fstream>

using namespace std;

int main (int argc, char* argv[]){
    int a = 111;
    int b = 234;
    cout << a << '\t' << b << endl; // print 111    234
    // save
    ofstream o("a.bin",ios::out|ios::binary);
    o << a << b;
    o.close();

    // reset to test
    a = -9999;
    b = -9999;
    // load
    ifstream i("a.bin",ios::in|ios::binary);
    i >> a >> b;
    cout << a << '\t' << b << endl; // print 111234    -9999
    return 0;
}

0 个答案:

没有答案