0

良い一日、

いくつかの計算の一部である次の関数を作成しました。

vector<double> read(){
    cout << "Add file to calculate, example: name.txt" << endl;
    char file;
    double numz;
    vector<double> myvector;
    char str[256];
    ifstream fin;
    cin.get (str,256);
    fin.open (str);
    while(fin.good()){

            fin>>numz;
            myvector.push_back(numz);

    }
    return myvector;


}  

この関数は、数値を含む単一の .txt ファイルを読み取り、別の関数でさらに計算するために返されるベクトルに保存します。

関数は正常に動作しますが、保存されている複数の .txt ファイルで動作するように編集したいと思います。この例は次のとおりです。

Write the names of the .txt files:
data10.txt data20.txt data30.txt
Size of the array is...: 60 

私は一日中解決策を探していましたが、何もうまくいかないようです。この機能を解決するためのヒントや提案をお寄せいただきありがとうございます。

4

2 に答える 2

2

入力行からを作成し、istringstreamそれを使用してファイル名を抽出できます。

//...
cin.get(str, 256);
string str2(str);
istringstream input(str2);
string filename;
while (input >> filename) {
  istream fin(filename.c_str());
  //... process as before
}
于 2012-11-12T20:10:36.053 に答える
0

問題は折り返し部分にあると思います。そうである場合は、vector.ie へのポインタのベクトルを返すことを検討してください。

vector<vector<double>*> read()
于 2012-11-12T20:14:13.570 に答える