注册 登录
编程论坛 C++教室

怎么一次读取文件中的全部内容?

for37 发布于 2007-10-16 11:33, 768 次点击
也就是把文件中的所以内容写到string变量中
C#中有个ReadToEnd,C++怎么写呢?

另外,有3个字符串,string a,b,c;
要吧a中的所有b串替换成c串怎么写?replace好象没有相应的重载
比如:a="chinasdinalsina"
b="ina"
c="fm"
替换后为a为:
a="chfmsdfmlsfm"
2 回复
#2
for372007-10-16 17:33
有人知道吗?
#3
HJin2007-10-16 20:17
回复:(for37)怎么一次读取文件中的全部内容?

/*---------------------------------------------------------------------------
File name: bccn-一次读取文件中的全部内容.cpp
Author: HJin (email: fish_sea_bird [at] yahoo [dot] com )
Created on: 10/16/2007 05:05:06
Environment: WinXPSP2 En Pro + VS2005 v8.0.50727.762


Modification history:
===========================================================================


Problem statement:
---------------------------------------------------------------------------
https://bbs.bc-cn.net/viewthread.php?tid=178063

怎么一次读取文件中的全部内容?

也就是把文件中的所以内容写到string变量中
C#中有个ReadToEnd,C++怎么写呢?

另外,有3个字符串,string a,b,c;
要吧a中的所有b串替换成c串怎么写?replace好象没有相应的重载
比如:a="chinasdinalsina"
b="ina"
c="fm"
替换后为a为:
a="chfmsdfmlsfm"

Sample output:
---------------------------------------------------------------------------

怎么一次读取文件中的全部内容?

也就是把文件中的所以内容写到string变量中
C#中有个ReadToEnd,C++怎么写呢?

另外,有3个字符串,string a,b,c;
要吧a中的所有b串替换成c串怎么写?replace好象没有相应的重载
比如:a="chinasdinalsina"
b="ina"
c="fm"
替换后为a为:
a="chfmsdfmlsfm"

chfmsdfmlsfm
Press any key to continue . . .
*/

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
ifstream ifs("a.txt");
string s(istreambuf_iterator<char>(ifs), (istreambuf_iterator<char>()));
cout<<s<<endl;
ifs.close();

string a="chinasdinalsina";
string b="ina";
string c="fm";

size_t n=0;
while((n=a.find(b, n))!=string::npos)
{
a.replace(n, b.size(), c);
++n;
}
cout<<a<<endl;

return 0;
}

只有本站会员才能查看附件,请 登录

1