| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 410 人关注过本帖
标题:二进制文件读写
只看楼主 加入收藏
王翔
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2015-2-1
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
二进制文件读写
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
    string s;
    ifstream fin("Rata.txt");   //  内容为  3 1 2
    ofstream fout;
    if(fin.fail())
        cout<<"error";
    getline(fin,s);
    fin.close();
    cout<<s<<endl;

    fout.open("Data.dat",ios::binary|ios::in);
    fout.write((char *)&s,sizeof(s));
    fout.close();


    string temp;
    fin.open("Data.dat",ios::binary);
    fin.read((char *)&temp,sizeof(s));
    cout<<temp;

    return 0;
}

调试时访问内存访问冲突。
搜索更多相关主题的帖子: include return 二进制 
2015-03-19 20:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
fout.open("Data.dat",ios::binary|ios::in); 也就算了,但竟然有 sizeof(s)

程序代码:
[color=#0000FF]#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main( void )
{
    string s;
    { // 将文件 Rata.txt 第一行读入 s 中
        ifstream fin("Rata.txt");   //  内容为  3 1 2
        if( !fin )
        {
            cerr << "failed to open Rata.txt\n";
            return 1;
        }
        if( !getline(fin,s) )
        {
            cerr << "failed to read Rata.txt\n";
            return 1;
        }
    }
    cout << s << endl;

    { // 将 s 内容写入到文件 Data.dat 中
        ofstream fout( "Data.dat", ios::binary );
        if( !fout )
        {
            cerr << "failed to create Data.dat\n";
            return 1;
        }
        fout.write( s.c_str(), s.size() );
    }

    string temp;
    { // 将文件 Data.dat 内容读入到 temp 中
        ifstream fin( "Data.dat", ios::binary );
        if( !fin )
        {
            cerr << "failed to open Data.dat\n";
            return 1;
        }

        // 获得文件 Data.dat 长度
        size_t len;
        {
            fin.seekg( 0, ios::end );
            len = fin.tellg();
            fin.seekg( 0, ios::beg );
        }

        temp.resize( len );
        fin.read( &temp[0], len );
    }
    cout << temp << endl;

    return 0;
}

[/color]
2015-03-20 08:41
王翔
Rank: 2
等 级:论坛游民
帖 子:13
专家分:12
注 册:2015-2-1
收藏
得分:0 
回复 2楼 rjsp
上一个为什么会出错啊  
2015-03-20 10:08
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
回复 2楼 rjsp
代码贴里 那些神马ubb标识都不管用了

DO IT YOURSELF !
2015-03-20 11:06
快速回复:二进制文件读写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055983 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved