Если я правильно понял ваш вопрос, вы хотите сделать что-то вроде следующего ( псевдокод ):
foreach member m of foo
{
file >> m;
}
, потому что вы хотите избежать заполнения каждого элемента вручную.
Если это то, что вы хотели, я не думаю, что есть простое решение для этого. Я не знаю остальную часть вашей программы, поэтому я не могу сказать, совместима ли она с вашим проектом, но я бы порекомендовал изменить дизайн вашей структуры. То, как вы используете его в настоящее время, вы не можете перебирать членов. Вы должны рассмотреть вопрос об изменении его на одну маленькую структуру:
struct foo {
int a;
std::string b;
bool c;
// no other members here!
}
и std::vector<foo>
, содержащий многие из них. Таким образом, вы можете заполнить их итеративно так, как ответил Бруно. Это, конечно, работает, только если в элементах есть повторяющийся шаблон (например, int, string, bool, int, string, bool, int, string, bool, ...
в данном случае).
Как я уже сказал, я не уверен, правильно ли я понял ваш вопрос и позволяет ли ваша программа для этого дизайна, но я надеюсь, что я все еще помог вам.
Редактировать: Может быть, вы должны просто искать какую-то сериализацию (например, JSON). Это делает именно то, что вы хотите, и есть много библиотек, которые делают это для вас.