c++中ifstream一次读取整个文件
来源:互联网 发布:教学视频的软件 编辑:程序博客网 时间:2024/06/06 12:48
c++中一次读取整个文件的内容的方法:
- 读取至char*的情况
std::ifstream t; int length; t.open("file.txt"); // open input file t.seekg(0, std::ios::end); // go to the end length = t.tellg(); // report location (this is the length) t.seekg(0, std::ios::beg); // go back to the beginning buffer = new char[length]; // allocate memory for a buffer of appropriate dimension t.read(buffer, length); // read the whole file into the buffer t.close(); // close file handle // ... do stuff with buffer here ...
- 读取至std::string的情况:
第一种方法:
#include <string> #include <fstream> #include <streambuf> std::ifstream t("file.txt"); std::string str((std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>());
第二种方法:
#include <string> #include <fstream> #include <sstream> std::ifstream t("file.txt"); std::stringstream buffer; buffer << t.rdbuf(); std::string contents(buffer.str());
#include<iostream>
#include<functional>
#include<fstream>
#include<iterator>
#include<string>
using
namespace
std;
int
main()
{
ifstream ifs(
"test.cpp"
, ios_base::binary );
string str;
std::copy(std::istream_iterator<unsigned
char
>(ifs),std::istream_iterator<unsigned
char
>(),back_inserter(str) );
cout<<str<<endl;
return
0;
}
#include <fstream >
#include <string>
#include <sstream>
using
namespace
std;
int
main ()
{
ifstream inf(
"test.cpp"
, ios::binary);
if
(inf)
{
ostringstream os;
os << inf.rdbuf();
cout << os.str();
}
system
(
"pause"
);
return
0;
}
include <fstream >
#include <string>
#include <sstream>
using
namespace
std;
int
main ()
{
ifstream inf(
"test.cpp"
, ios::binary);
if
(inf)
{
ostringstream os;
cout <<inf.rdbuf;
}
system
(
"pause"
);
return
0;
}
读出指定字节数,并且包含回车符号等等:
#include <iostream>
#include <fstream>
#include <iterator>
#include <algorithm>
#include <string>
#include <functional>
using
namespace
std;
class
ReadBuffer:unary_function<string::iterator,
void
>
{
public
:
string &buffer;
size_t
length;
ReadBuffer(string &buf,
size_t
len):buffer(buf),length(len){buffer.reserve(length);}
void
operator()(
char
c )
{
if
( buffer.size()<length )
{
buffer+=c;
}
}
};
int
main()
{
const
size_t
N=10;
ifstream infile(
"test.txt"
, ios::binary );
if
( infile.fail() ){
return
0; }
string buffer;
istreambuf_iterator<
char
> bg(infile);
istreambuf_iterator<
char
> ed;
for_each( bg,ed,ReadBuffer(buffer,N) );
copy( buffer.begin(),buffer.end(), ostream_iterator<
char
>(cout,
""
) );
return
0;
}
0 0
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- c++中ifstream一次读取整个文件
- mapreduce中map方法一次读取整个文件
- c++一次读取整个文件的方法
- c语言读取整个文件!!
- C/C++读取整个文件
- ifstream多次读取文件
- ifstream读取文件
- ifstream多次读取文件
- ifstream操作文件读取
- ifstream文件无法读取
- 关于mysql5.6表名小写无法改大写的解决方案
- 设计模式之七个结构型模式的相关知识,简单易懂。
- 类加载,相关代码
- Expressions and Statemen
- 几本推荐的Java书
- c++中ifstream一次读取整个文件
- 企业公众号都离不开的四种运营模式
- 外挂学习之路(11)--- 背包数据的遍历
- 如何使用TransitionDrawable实现背景切换渐变效果
- 火遍大江南北的前端面试题[JavaScript]
- 多线程_线程调度及获取和设置线程优先级
- SDUT 3779 小Hao的播放器
- Android自定义控件之扫描动画UI
- Linux之shell脚本学习(1)简介和变量