0

我需要将一个 int 序列化为本地文件并将其读入内存。这是代码

#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
int _tmain ( int argc, _TCHAR* argv[] )
{
    ofstream fileout;
    fileout.open ( "data,txt" );
    fileout << 99999999;
    fileout << 1;
    cout << fileout.tellp() << endl;
    fileout.flush();
    fileout.close();
    ifstream fileint;
    fileint.open ( "data,txt" );
    int i, a;    
    fileint >> i >> a;   //i != 99999999   a!= 1 WHY?
    cout << fileint.tellg() << endl;
    return 0;
}

但它不能正常工作,我无法得到 i==99999999 或 a==1。那有什么问题?

4

2 回答 2

6

问题是它operator <<不是operator >>对偶的——operator <<直接输出没有填充或分隔符的东西,同时operator >>解析空格分隔的输入。因此,您需要在输出中的内容之间手动添加空格分隔符以使其正确回读。您也不能输出包含空格的内容并期望它们正确回读。

于 2012-12-05T19:49:08.383 回答
4

也许fileout << 99999999 << ' ' << 1;会奏效。

于 2012-12-05T19:48:29.180 回答