Я изо всех сил пытаюсь записать параметры для функции 'readFile', параметрами которой являются - имя файла и двухмерный вектор, в который информация копируется из файла.Программа не генерирует ЛЮБЫХ ошибок, но возвращает только пустой вектор.Если я скопирую код из функции 'readFile' в функцию main (), это сработает, но я хочу создать отдельную функцию, чтобы я мог заполнять векторы информацией из разных файлов.Также мне нужно будет передать эти аргументы для функций другого типа с похожей структурой, где я читаю из файла и копирую в 2D вектор, поэтому мне действительно нужно это выяснить.Функция «PrintVector» работает нормально.Может ли кто-нибудь помочь мне?
#include <string>
#include <sstream>
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
void printVector(vector< vector <float> > v)
{
for (size_t i=0; i<v.size(); ++i)
{
for (size_t j=0; j<v[i].size(); ++j)
{
cout << v[i][j] << "\t";
}
cout << "\n";
}
}
void readFile(char* filename, vector< vector<float> > &rowvector)
{
ifstream myfile(filename, ios::in);
string line;
string field;
vector<float> v; // 1 row
float result; // converted string value is saved in 'result' as a float type
if(myfile.is_open()){
while ( getline(myfile,line) ) // get next line in file
{
v.clear();
stringstream ss(line);
while (getline(ss,field,',')) // comma seperates elements
{
istringstream convert(field);
if ( !(convert >> result) )
result = 0;
v.push_back(result); // add each field to the 1D array
}
rowvector.push_back(v); // add the 1D array to the 2D array
}
}
myfile.close();
}
int main()
{
vector< vector<float> > myvector; // new 2D vector
readFile("test.txt", myvector);
printVector(myvector);
return 0;
}
Любая помощь очень ценится!