Может поможет кто в чем ошибка код: struct student { char* name; int number_group; int* grade=new int[5]; }; istream& operator>>(istream&is, student& st) { string str, error_message = "Некорректный ввод, повторите попытку...\n"; bool f = false; int n; do { cout 256||!str.size()) cout << error_message; else { st.name = _strdup(str.c_str()); f = true; } } while (!f); f = false; Ошибка: main.cpp:20:14: error: ‘str_strdup’ was not declared in this scope st.name = str_strdup(str.c_str()); | ^~~~~~~~~~
Функция _strdup является функцией стандартной библиотеки Windows и не входит в стандарт C++ или C. Вместо использования _strdup, вы можете использовать strdup из <cstring>, который является аналогом функции _strdup для других компиляторов.
Измените строку st.name = _strdup(str.c_str()); на st.name = strdup(str.c_str()); и добавьте в начале программы #include <cstring>.
Это должно исправить ошибку и заставит вашу программу компилироваться корректно.
Функция _strdup является функцией стандартной библиотеки Windows и не входит в стандарт C++ или C. Вместо использования _strdup, вы можете использовать strdup из <cstring>, который является аналогом функции _strdup для других компиляторов.
Измените строку st.name = _strdup(str.c_str()); на st.name = strdup(str.c_str()); и добавьте в начале программы #include <cstring>.
Это должно исправить ошибку и заставит вашу программу компилироваться корректно.