Всем здравствуйте. Одно из условий задачи на учебе, вывести сотрудников у которых номер телефона начинается на определенные цифры. Я создал класс и 100 сотрудников с именами и номерами телефона. Теперь мне нужно прогнать их всех через цикл и if вывести сотрудников с определенными номерами. Но я не знаю, как прогнать именно всех сотрудников в цикле. Читал, что нужно сделать массив класса. Вроде сделал как написано на одном из форумов, но почему-то у меня номер телефона всегда приравнивается единице. А если захочу таким же образом вывести имя, то фигня какая-то. Что я делаю не так?
P.S. Для примера убрал цикл и просто оставил вывод.


#include
#include
#include
#include
using namespace std;
int main()
{
struct sotrudnic {
char name[50];
int telephone;
void coutSotrudnic(){
cout
#include
#include
#include
#include
using namespace std;
struct Employee {
string name;
string phone;
Employee() : name(0), phone("-") {}
Employee(const string& name, const string& phone) : phone(phone), name(name) {}
bool find_first_digit(char digit)const {
return digit == phone.front();
}
private:
friend bool operator
у тебя нигде не создается массив наполненный твоими страктами
ты просто объявил массив типа sotrudnic и длиной 100 элементов
поэтому что то пытаться брать из неинициализированного массива - бессмысленно
я не пойму почему нету ошибки ArrayOutOfBounds* или ArrayElementUndefined*
короче клади сразу свои стракты в массив, прямо во время объявления (такой вид наполнения массива называется literal, или hard-code, и это полный треш, вместо этого ты должен создать какую то внешнюю базу, например в виде файла yaml, и оттуда уже тянуть в цикле свои все значения), и уже потом вызывай arr[n].itemname
ты можешь даже сделать проще - создай вектор* с сотней имен, еще один вектор с сотней телефонов, а затем в цикле от 0 до 99 пробегись и делай arr.push(new Employee(names[i], phones[i]))*
никакие сто переменных создавать НЕ НАДО, клади в массив в виде анонимных элементов; а если тебе нужны именованные элементы - то используй Dictionary* или NamedSet*
а еще ты смешиваешь \n и <<endl, из за чего путаница в какую строчку что пошло
* псевдокод
"элегантный" ответ... но... абсолютно бесполезный...