C ++ - 将文本文件作为字符串读取,然后将字符串拆分为向量

Posted

技术标签:

【中文标题】C ++ - 将文本文件作为字符串读取,然后将字符串拆分为向量【英文标题】:C++ - Read a text file in as a string of words, then split the string into a vector 【发布时间】:2017-03-15 02:18:05 【问题描述】:

假设“grades.txt”的内容是:

    David 99 94 95
    Mike 91 84
    John 100 85
    Lexa 76 88 90 74 85 76
    Paul 83 95
    Ryan 71 72 85
    Tommy 95 96
    Joseph 100 83 85 86
    Denise 100 90 76
    Ava 80 90

文件的第一行由每个学生的姓名表示。之后的前几行是每个学生成绩的随机集合。

我的问题与如何将文件作为单词字符串读取并将字符串拆分为向量,以便我可以将每个元素组织到班级学生的正确位置。如果有更简单的方法来实现这一点,我也将不胜感激。感谢您提供的任何帮助。

这是我的班级学生:

    class Students 
    public:
        Students();
        ~Students();

    private:
        string name;
        int grades;
    ;

【问题讨论】:

解决问题,google cpp 参考问题。能够将文件读入字符串,使用 readline 函数,然后解析字符串以查找空格,剪切值,将每个学生的成绩存储在一个数组中。从头到尾逐步开发程序,即构建->测试->改进。没有理由从数据结构开始,从打开文件、读取值、分解它们开始,然后研究如何存储它们。迭代开发:在每个程序迭代中,您在处理中实现一个额外的阶段,让它工作,然后添加下一步。 【参考方案1】:

你可以试试 boost::split。 例如:

//split strFileBuffer with space and get the string vector.
string strFileBuffer;
vector<string> strs;
boost::split(strs, strFileBuffer,boost::is_any_of(" "));

【讨论】:

以上是关于C ++ - 将文本文件作为字符串读取,然后将字符串拆分为向量的主要内容,如果未能解决你的问题,请参考以下文章

将整个文本文件作为单个字符串读取的合理方法是啥?

将 excel 列作为文本读取

是否有可能知道从文件中读取的长文本将在 C 中使用多少个字符?

C ++中的fin是否可以与.doc文件一起使用?

python读取文本文件,如何将每行最后一个特定字符替换?

我如何每行读取一个文本文件,然后将字符串分解成单个单词(分成一个树集)而不重复?