简体   繁体   中英

how to call functions and unused expression error

I get an error saying: use of undeclared identifier 'again'. I am trying to go from int main to void again and back after getting an answer. Please explain to me why it won't work also. Thanks.

Here is my full code:

 #include <iostream> 
 #include <vector>
 #include <iomanip>
 #include <algorithm>
 #include <string>

 using namespace std;

 {
    string answer;
    cout << "Would you like to enter another set of data? Y or N?" << endl;
    cin << answer;
    string yes = "Yes";
    string no = "No";
    if(a == yes)
    {  
         main();
    }
 }
 int main()
 {
    cout << "Kaitlin Stevers" << endl;
    cout << "Exercise 11 - Vectors" << endl;
    cout << "November 12, 2016" <<endl;
    cout << endl;
    cout << endl;
    int size;
    cout << " How many numbers would you like the vector to hold? " << endl;
    cin >> size;
    vector<int> numbers;
    int bnumbers;

    for (int count = 0; count < size; count++)
    {
        cout << "Enter a number: " << endl;
        cin >> bnumbers;
        numbers.push_back(bnumbers); // Adds an element to numbers
     }
     //display the numbers stored in order
     cout << "The numbers in order are: " << endl;
     for(int bcount = 0; bcount < size; bcount++)
     {
         cout << numbers[bcount] << " ";
     }
     cout << endl;
     //display the numbers stored reversed
     cout << "Here are the numbers in reverse order: " << endl;

     reverse(numbers.begin(), numbers.end());
     for(int rcount = 0; rcount < size; rcount++)
     {
        cout << numbers[rcount] << " ";
     }
     cout << endl;
     again();
     return 0;
     }
  void again()

}

You need to declare your fonction "again" before calling it :

 #include <iostream> 
 #include <vector>
 #include <iomanip>
 #include <algorithm>
 #include <string>

 using namespace std;

 void again();

 int main()
 {
    cout << "Kaitlin Stevers" << endl;
    cout << "Exercise 11 - Vectors" << endl;
    cout << "November 12, 2016" <<endl;
    cout << endl;
    cout << endl;
    int size;
    cout << " How many numbers would you like the vector to hold? " << endl;
    cin >> size;
    vector<int> numbers;
    int bnumbers;

    for (int count = 0; count < size; count++)
    {
       cout << "Enter a number: " << endl;
       cin >> bnumbers;
       numbers.push_back(bnumbers); // Adds an element to numbers
    }
    //display the numbers stored in order
    cout << "The numbers in order are: " << endl;
    for(int bcount = 0; bcount < size; bcount++)
    {
        cout << numbers[bcount] << " ";
    }
    cout << endl;
    //display the numbers stored reversed
    cout << "Here are the numbers in reverse order: " << endl;
         reverse(numbers.begin(), numbers.end());
    for(int rcount = 0; rcount < size; rcount++)
    {
       cout << numbers[rcount] << " ";
    }
    cout << endl;
    again();
    return 0;
}

void again()
{
   string answer;
   cout << "Would you like to enter another set of data? Y or N?" << endl;
   cin >> answer;
   string yes = "Yes";
   string no = "No";
   if(answer == yes)
   {  
        main();
   }
}

However, it's a strange things to use recursivity for what you want to do and to call main func multiple times (which is by definition, main entry of a program). In my opinion, you should call in your main function another function named like askInformation which uses a loop with a test case to know if user wants to add informations or not.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM