当前位置:  开发笔记 > 编程语言 > 正文

是否有一个单行程序在文件中读取C++中的字符串?

如何解决《是否有一个单行程序在文件中读取C++中的字符串?》经验,为你挑选了2个好方法。

我需要一种快速简便的方法来从标准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"



1> Rexxar..:

我们可以做到,但这是一个很长的路线:

#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"


@Doug T:在评估分号之前的完整表达式后,临时对象被销毁.

2> Doug T...:

几乎可以使用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的评论).

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有