关于字符串和文件流的奇技淫巧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于字符串和文件流的奇技淫巧相关的知识,希望对你有一定的参考价值。

早早起来,发一篇来概括一下昨天晚上搞到深夜才学到的一些字符串和文件流的简单操作。

(写在前面:以下所有的文件流都以输入文件流为例,另外这种文件读写方式与竞赛时使用的有较大差别,NOIP党里C++刚刚入门的童鞋请谨慎阅读)

文件流的定义

#include <fstream>
#include <iostream>
using namespace std;
ifstream in//定义一个叫做in的ifstream类对象

ifstream类的文件打开方法(使用open成员函数(函数原型:

void open(const char*_Filename,unsigned int_mode)

代码片段

//ifstream in;
//string name;
cin>>name;//读入要打开的文件名
in1.open(name1.c_str());//将文件名转成C语言字符串风格并用open成员函数打开对应文件
if (!in1.good())//成员函数good判断当前文件是否正常打开
{
    cout << "Error On Opening FILE1..." << endl;
    return 0;
}

计算文件大小(seekg,tellg成员函数)

in.seekg(0, ios::end);//移动光标到文件末尾
streampos pos = in.tellg();//返回当前光标位置
cout << "The Size of FILE is" << pos << endl;//输出文件大小
in.seekg(0, ios::beg);//再将光标复位

以字符串(STL string)形式读入文件全部内容

string tmp((istreambuf_iterator<char>(in1)),istreambuf_iterator<char>());//将文件内容当作字符串读入
cout << tmp << endl;

 

备注:以上代码都在本机Visual Studio2017上测试通过,操作系统Windows10 64Bit。

这是昨天晚上在搜集各方资料和一次次失败尝试后的结果,现总结一下并与大家分享(写博防忘大法好...)

以上是关于关于字符串和文件流的奇技淫巧的主要内容,如果未能解决你的问题,请参考以下文章

50个关于IPython的奇技淫巧?

Lombok插件的基本使用

Java——关于Java中I/O流的面试题

Java——5个关于Java中I/O流的面试题

有没有办法在不关闭底层流的情况下关闭 Writer?

关于在各浏览器中插入音频文件的html代码片段