I am currently working on a very simple project and I found a problem in the testing phase when I tried to enter his name for the new employee and the decision condition was suddenly triggered, I am not sure why this happened. Based on my limited coding experience, in general, a statement in an output judgment statement needs to fulfil a judgment condition, but why would a judgment condition be triggered if I didn't do any input? Thank you all for your help.
Here is a part of the code.
void Management::Add_Staff() {
 std::cout << "Please enter the number of staffs you want to add: " << std::endl;
 int addNum = 0;  // saves the amount entered by the user
 std::cin >> addNum;
 while (addNum <= 0 || addNum >= 50) {
   std::cout << "Invaild number. Please try again" << std::endl;
   std::cout << "Please enter the number of staffs you want to add: " << std::endl;
   std::cin.clear(); // clear error enter
   std::cin.ignore(INT_MAX, '\n'); // INT_MAX means an extremely large number,'\n' means empty space
   std::cin >> addNum;
 }
   int new_Size = this->_StaffNumber + addNum;  // The number of existing employees plus
                                  // the number of new employees
   Person** new_Space = new Person*[new_Size];  // Open up new space
   if (this->_StaffArray !=
       NULL)  // if the data of the original pointer is not null
   {
     for (int i = 0; i < this->_StaffNumber;
          i++)  // data of the original pointer is added to the new pointer
     {
       new_Space[i] = this->_StaffArray[i];
     }
   }
   for (int i = 0; i < addNum; i++) {
     int ID;  // create an variable nameed id to store the staff number entered
           // from users           
     std::cout << "Please enter pure and positive number as the staff number of " << i + 1 << " staff: " << std::endl;
     std::cin >> ID;
     while (ID <= 0) {
       std::cout << "Invalid staff number, please enter again: " << std::endl;
       std::cin.clear(); 
       std::cin.ignore(INT_MAX, '\n'); 
       std::cin >> ID;
     }
     std::string NAME;  // create an variable nameed id to store the staff
                     // number entered from users
     std::cout << "Please enter the name: " << std::endl;
     // std::cin >> NAME;
     while (std::getline(std::cin, NAME)) {
       if (NAME.length() == 0)
       {
           std::cout << "Your input is not correct. Please re-enter your name" << 
std::endl;
       }
       // This will check if the NAME contains only characters.
       else if (std::all_of(NAME.begin(), NAME.end(), isalpha)) // isalpha: The function returns a non-zero value if the argument is an alphabetic character, or zero otherwise.
       {
           break;
       }
       else {
           std::cout << "Only characters are allowed:" << std::endl;
       }
   }
That is my test case.
*********************************************************
********Welcome to the employee management system********
***********0.Exit the management page********************
***********1.Add the employee information****************
***********2.Display the employee information************
***********3.Delete the employee information*************
***********4.Modify the employee information************
 
***********5.Search the employee information************
***********6.Sort by number***************************** 
Please enter the numbers 0 through 6 as your next step
 
1
Please enter the number of staffs you want to add:
1
Please enter pure and positive number as the staff number of 1 staff:
 
12
Please enter the name: 
Your input is not correct. Please re-enter your name
After I entered the employee number, the judgment condition was triggered before I entered the name, but I didn't enter a space, I didn't even have time to enter something, and the judgment condition was triggered.
 
     
    