У меня есть простая структура в моем коде для чтения значений из текстового файла. эта структура
struct read_data_into_file{
std::string Fname,Lname;
double score[5];
double sum;
};
, тогда у меня есть функция, чтобы открыть и прочитать из файла.
void ReadFromFile(){
std::ifstream f;
read_data_into_file Newobj;
std::vector<read_data_into_file> obj;
f.open("/Users/vibhorsagar/Desktop/cslabs/cs-116lab1/cs-116lab1/input.txt");
if(!f.is_open())
{
std::cout<<"error opening file";
}
else{
while(!f.eof())
{
f>>Newobj.Fname>>Newobj.Lname;
for(count=0;count<5;count++)
{
f>>Newobj.score[count];
Newobj.sum+=Newobj.score[count];
}
obj.push_back(Newobj);
}
for(int i=0;i<obj.size();i++){
std::cout<<obj[i]<<" "<<std::endl;
}
}
f.close();
Я не совсем понимаю, как читать данные в векторе. Текстовый файл содержит кучу имен и цифр.
Андрия Сенгер 80 65 81 76
Натал ie Уизерспун 96 99 93
Марибель Даннер 94 53 96 91 60
Кара Хоган 52 75 93 97 95
Эллиот Кремер 74 50 96 68
Кина Шойрер 100 90 57 97 90
Синди Морфин 74 67
Джанет Сайто 81 60 60
Это содержимое текстового файла. Я думал, что смогу сохранить индивидуальное имя как имя, фамилию и числа после этого в массиве. а затем найти их индивидуальное среднее. но когда я пытаюсь напечатать вектор в функции, я получаю сообщение об ошибке
Недопустимые операнды в двоичном выражении ('std :: __ 1 :: ostream' (он же 'basic_ostream') и 'std :: __ 1 :: __vector_base> :: value_type '(он же' read_data_into_file '))
Также числа в каждой строке не 5, но я использую это для размера массива, потому что это было наибольшее число в строке. Я не знаю, как динамически установить размер массива для каждой строки. Я использую Xcode на Ma c для записи и компиляции.
Если есть какой-либо другой способ сделать это, я могу воспользоваться помощью или если вы можете предложить лучший способ сделать это. Благодарю вас!