C ++数组字符串函数

时间:2016-03-05 05:54:00

标签: c++

有人可以告诉我如何创建一个从文件txt字符串数据类型读取的数组函数 例如:

读入函数内的以下文件:

colleges.txt

states.txt

将学院/大学添加到字符串向量中。

将状态添加到并行字符串数组中。

从主函数调用read函数。

非常感谢你:D

2 个答案:

答案 0 :(得分:-1)

请尝试以下代码:

#include<iostream>
#include<string>
#include<fstream>
#include<vector>

void func()
{
    std::ifstream fin;
    fin.open("colleges.txt", std::ifstream::in);
    std::vector<std::string> vec;
    std::string line;
    while(getline(fin, line))
    {
        vec.push_back(line);
    }
    fin.close();

    int len = vec.size();
    std::string *arr = new std::string[len];
    int index = 0;
    fin.open("states.txt", std::ifstream::in);
    while(getline(fin, line))
    {
        arr[index++] = line;
    }
    fin.close();

    for(auto e:vec) std::cout<<e<<" ";
    std::cout<<"\n";

    for(int i = 0; i < len; ++i)
        std::cout<<arr[i]<<" ";
    std::cout<<"\n";

    delete [] arr;
}

int main()
{
    func();
    return 0;
}

答案 1 :(得分:-1)

使用矢量,卡尔!

#include <string>
#include <vector>
#include <fstream>
#include <iostream>

using namespace std;

struct TwoVectors {
    vector<string> first ;
    vector<string> second;
};

TwoVectors getSomeData() {
    TwoVectors ret;

    auto collegesReader = ifstream("colleges.txt");
    auto statesReader = ifstream("states.txt");
    string temp;

    while (getline(collegesReader, temp))
        ret.first.push_back(temp);
    while (getline(statesReader, temp))
        ret.second.push_back(temp);
    collegesReader.close();
    statesReader.close();
    return ret;
}



int main() {
    auto someData = getSomeData();
    for (auto something : someData.first)
        cout << something << endl;
    for (auto something : someData.second)
        cout << something << endl;

    return 0;
}