Hello! I am having issues with my code. This is written in C++. I have a function called displayMenu and I am trying to call it in a thread in main but the function is not woking properly. The menu does not display properly and when I give an option like Q, R, S+, ect. it does not do what is inside of the if else.  #include #include #include #include using namespace std; //Menu void *displayMenu(void *arg){ string inputUser; int timeInSec = 5; do { cout<<"\"Q\" Causes the program to complete.\n"; cout<<"\"R\" Causes the program to exit the input menu, resetting the trigger for the menu.\n"; cout<<"\"S+\" Causes the simulation rate of the program to increase by 1.\n"; cout<<"\"S-\" Causes the simulation rate of the program to decrease by 1.\n"; cout<<"\"D+\" Causes the frame rate of the program to increase by 1.\n"; cout<<"\"D-\" Causes the frame rate of the program to decrease by 1.\n"; cout<<"\n"; cout<<"Enter your selection please:\n"; cin >> inputUser; if(inputUser == "Q"){ cout<<"Program completed. See you later!\n"; //call function if necessary } else if(inputUser == "S+"){ cout<<"Simulation rate will increase by 1.\n"; sleep(timeInSec); //call function or insert appropriate stuff } else if (inputUser == "S-"){ cout<<"Simulation rate will decrease by 1.\n"; sleep(timeInSec); //call function or insert appropriate stuff } else if(inputUser == "D+"){ cout<<"Frame rate will increase by 1.\n"; sleep(timeInSec); //call function or insert appropriate stuff } else if (inputUser == "D-"){ cout<<"Frame rate will decrease by 1.\n"; sleep(timeInSec); //call function or insert appropriate stuff } else{ displayMenu(&arg); } } while(inputUser != "R"); } //main function int main(int argc, char *argv[]){ if(argc < 2 || argc > 2){ cout<<"Please enter argument in following format: p3 insertFilename\n"; cout<<"Keep in mind the program only accepts one argument. Thank you!\n"; exit(1); } pthread_t id; pthread_create(&id, NULL,displayMenu, NULL); cout <<"Test"<

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Hello!

I am having issues with my code. This is written in C++.

I have a function called displayMenu and I am trying to call it in a thread in main but the function is not woking properly. The menu does not display properly and when I give an option like Q, R, S+, ect. it does not do what is inside of the if else. 

#include <iostream>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>

using namespace std;


//Menu
void *displayMenu(void *arg){
string inputUser;
int timeInSec = 5;
do {
cout<<"\"Q\" Causes the program to complete.\n";
cout<<"\"R\" Causes the program to exit the input menu, resetting the trigger for the menu.\n";
cout<<"\"S+\" Causes the simulation rate of the program to increase by 1.\n";
cout<<"\"S-\" Causes the simulation rate of the program to decrease by 1.\n";
cout<<"\"D+\" Causes the frame rate of the program to increase by 1.\n";
cout<<"\"D-\" Causes the frame rate of the program to decrease by 1.\n";
cout<<"\n";
cout<<"Enter your selection please:\n";
cin >> inputUser;
if(inputUser == "Q"){
cout<<"Program completed. See you later!\n";
//call function if necessary
} else if(inputUser == "S+"){
cout<<"Simulation rate will increase by 1.\n";
sleep(timeInSec);
//call function or insert appropriate stuff
} else if (inputUser == "S-"){
cout<<"Simulation rate will decrease by 1.\n";
sleep(timeInSec);
//call function or insert appropriate stuff
} else if(inputUser == "D+"){
cout<<"Frame rate will increase by 1.\n";
sleep(timeInSec);
//call function or insert appropriate stuff
} else if (inputUser == "D-"){
cout<<"Frame rate will decrease by 1.\n";
sleep(timeInSec);
//call function or insert appropriate stuff
} else{
displayMenu(&arg);
}

} while(inputUser != "R");
}

//main function
int main(int argc, char *argv[]){
if(argc < 2 || argc > 2){
cout<<"Please enter argument in following format: p3 insertFilename\n";
cout<<"Keep in mind the program only accepts one argument. Thank you!\n";
exit(1);
}
pthread_t id;
pthread_create(&id, NULL,displayMenu, NULL);
cout <<"Test"<<endl;
return 0;
}
Expert Solution
steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Avoiding deadlock
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education