rob*_*bor 8 c++ filesystems file
我需要一种快速简便的方法来从标准C++中的文件中获取字符串.我可以编写自己的,但只是想知道C++中是否已有标准方法.
如果你知道Cocoa就相当于:
NSString *string = [NSString stringWithContentsOfFile:file];
Run Code Online (Sandbox Code Playgroud)
Rex*_*xar 17
我们可以做到,但这是一个很长的路线:
#include<fstream>
#include<iostream>
#include<iterator>
#include<string>
using namespace std;
int main()
{
// The one-liner
string fileContents(istreambuf_iterator<char>(ifstream("filename.txt")), istreambuf_iterator<char>());
// Check result
cout << fileContents;
}
Run Code Online (Sandbox Code Playgroud)
编辑:使用"istreambuf_iterator"而不是"istream_iterator"
Dou*_* T. 10
几乎可以使用istream_iterator(3行!)
#include <iostream>
#include <fstream>
#include <iterator>
#include <string>
#include <sstream>
using namespace std;
int main()
{
ifstream file("filename.txt");
string fileContents;
copy(istreambuf_iterator<char>(file),
istreambuf_iterator<char>(),
back_inserter(fileContents));
}
Run Code Online (Sandbox Code Playgroud)
编辑 - 摆脱中间字符串流,现在直接复制到字符串,现在使用istreambuf_iterator,忽略空格(感谢Martin York的评论).
| 归档时间: |
|
| 查看次数: |
1332 次 |
| 最近记录: |