我需要一种快速简便的方法来从标准C++中的文件中获取字符串.我可以编写自己的,但只是想知道C++中是否已有标准方法.
如果你知道Cocoa就相当于:
NSString *string = [NSString stringWithContentsOfFile:file];
Rexxar.. 17
我们可以做到,但这是一个很长的路线:
#include#include #include #include using namespace std; int main() { // The one-liner string fileContents(istreambuf_iterator (ifstream("filename.txt")), istreambuf_iterator ()); // Check result cout << fileContents; }
编辑:使用"istreambuf_iterator"而不是"istream_iterator"
我们可以做到,但这是一个很长的路线:
#include#include #include #include using namespace std; int main() { // The one-liner string fileContents(istreambuf_iterator (ifstream("filename.txt")), istreambuf_iterator ()); // Check result cout << fileContents; }
编辑:使用"istreambuf_iterator"而不是"istream_iterator"
几乎可以使用istream_iterator(3行!)
#include#include #include #include #include using namespace std; int main() { ifstream file("filename.txt"); string fileContents; copy(istreambuf_iterator (file), istreambuf_iterator (), back_inserter(fileContents)); }
编辑 - 摆脱中间字符串流,现在直接复制到字符串,现在使用istreambuf_iterator,忽略空格(感谢Martin York的评论).