频道栏目
首页 > 程序开发 > 软件开发 > C++ > 正文
读取文件内容到并保存到string中
2013-06-14 08:10:27           
收藏   我要投稿

(最近在调整生物钟,晚上9点半前睡觉,早晨很早就醒了,利用早晨充足的时间可以读英语和写代码,感觉很好。)
不知道你是否考虑过这个问题:std::string究竟可以存储多大的字符串呢?
理论上std::string可以存储 std::string::max_size大小的内容。
我在Visual studio 2008上运行的结果是:max_size:4294967291

 

#include <iostream>     // std::cout
#include <fstream>      // std::ifstream
#include <string>


using namespace std;


bool readFileToString(string file_name, string& fileData)
{


    ifstream file(file_name.c_str(),  std::ifstream::binary);
   
    if(file)
    {
        // Calculate the file's size, and allocate a buffer of that size.
        file.seekg(0, file.end);
        const int file_size = file.tellg();
        char* file_buf = new char [file_size+1];
        //make sure the end tag \0 of string.

        memset(file_buf, 0, file_size+1);
       
        // Read the entire file into the buffer.
        file.seekg(0, ios::beg);
        file.read(file_buf, file_size);


        if(file)
        {
            fileData.append(file_buf);
        }
        else
        {
            std::cout << "error: only " <<  file.gcount() << " could be read";
            fileData.append(file_buf);
            return false;
        }
        file.close();
        delete []file_buf;
    }
    else
    {
        return false;
    }


    return true;
}


int main()
{
    string data;
    if(readFileToString("d:/Test.txt", data))
    {
        cout<<"File data is:\r\n"<<data<<endl;
    }
    else
    {
        cout<<"Failed to open the file, please check the file path."<<endl;
    }


    cout << "size: " <<  data.size() << "\n";
    cout << "length: " <<  data.length() << "\n";
    cout << "capacity: " <<  data.capacity() << "\n";
    cout << "max_size: " <<  data.max_size() << "\n";


    getchar();
}

 

 


运行结果:
(为了方便显示,这里打开的是一个很小的文件。)

点击复制链接 与好友分享!回本站首页
相关TAG标签 文件 内容
上一篇:POJ 2031 Building a Space Station
下一篇:享元设计模式与Integer类
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站