C++ The programme below is in C language. Please help me convert the whole programme into C++ language   The code:   #include #include #include   struct node {             char data[100];             struct node* next; };   int elements = 0; // function for add values to stack struct node* add(struct node* stack, char *str) {             struct node* tp = (struct node*)malloc(sizeof(struct node)) ;             strcpy(tp->data,str);             tp->next = stack;             elements++;             return tp; } //redo function void redo(struct node* stack) {             if(stack == NULL)                         return;             elements++; } //undo function void undo(struct node* stack) {             if(stack == NULL)                         return;             elements--; }   //print function int print(struct node* stack,int idx) {             if(stack == NULL)                         return 0;             idx = print(stack->next,idx);             if(idxdata);             return idx+1; }     //function for save in file int save_command(FILE* filePointer, struct node* stack,int idx) {             if(stack == NULL)             {                         return 0;             }             idx = save_command(filePointer, stack->next,idx);             if(idxdata);             return idx+1; }     //main function int main() {             //stacks for undo and redo             struct node *stack1 = NULL;             char input[100];             while(1==1)             {                         printf("MyCommand > ");                         gets(input);                         if(strcmp("undo",input)==0)                         { //if input is undo                                     undo(stack1);                                     printf("result >\n");                                     print(stack1,elements);                         }                           else if(strcmp("redo",input)==0)                         { //if input is redo                                     redo(stack1);                                     printf("result >\n");                                     print(stack1,elements);                         }                                                 else if(strcmp("print",input)==0)                         { //if input is print                                     printf("result >\n");                                     print(stack1,elements);                         }                                                 else if(strcmp("save", input)==0)                         { //if input is save                                     FILE* filePointer;                                     filePointer=fopen("output.txt","w");                                       save_command(filePointer,stack1,elements);                                     fclose(filePointer);                         }                                                 else if(strcmp("quit",input)==0) //if input is quit                         {                                     FILE* filePointer;                                     filePointer=fopen("output.txt","w");                                     save_command(filePointer,stack1,elements);                                     fclose(filePointer);                                     printf("result > Good Bye!\n");                                     exit(0);                         }                         else //if input is any other string add to stack                                     stack1 = add(stack1,input);             }             return 0; }

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
100%

C++

The programme below is in C language. Please help me convert the whole programme into C++ language

 

The code:

 

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

 

struct node

{

            char data[100];

            struct node* next;

};

 

int elements = 0;

// function for add values to stack

struct node* add(struct node* stack, char *str)

{

            struct node* tp = (struct node*)malloc(sizeof(struct node)) ;

            strcpy(tp->data,str);

            tp->next = stack;

            elements++;

            return tp;

}

//redo function

void redo(struct node* stack)

{

            if(stack == NULL)

                        return;

            elements++;

}

//undo function

void undo(struct node* stack)

{

            if(stack == NULL)

                        return;

            elements--;

}

 

//print function

int print(struct node* stack,int idx)

{

            if(stack == NULL)

                        return 0;

            idx = print(stack->next,idx);

            if(idx<elements)

            printf("%s\n",stack->data);

            return idx+1;

}

 

 

//function for save in file

int save_command(FILE* filePointer, struct node* stack,int idx)

{

            if(stack == NULL)

            {

                        return 0;

            }

            idx = save_command(filePointer, stack->next,idx);

            if(idx<elements)

                        fprintf(filePointer,"%s\n",stack->data);

            return idx+1;

}

 

 

//main function

int main()

{

            //stacks for undo and redo

            struct node *stack1 = NULL;

            char input[100];

            while(1==1)

            {

                        printf("MyCommand > ");

                        gets(input);

                        if(strcmp("undo",input)==0)

                        { //if input is undo

                                    undo(stack1);

                                    printf("result >\n");

                                    print(stack1,elements);

                        }

 

                        else if(strcmp("redo",input)==0)

                        { //if input is redo

                                    redo(stack1);

                                    printf("result >\n");

                                    print(stack1,elements);

                        }

                       

                        else if(strcmp("print",input)==0)

                        { //if input is print

                                    printf("result >\n");

                                    print(stack1,elements);

                        }

                       

                        else if(strcmp("save", input)==0)

                        { //if input is save

                                    FILE* filePointer;

                                    filePointer=fopen("output.txt","w");

 

                                    save_command(filePointer,stack1,elements);

                                    fclose(filePointer);

                        }

                       

                        else if(strcmp("quit",input)==0) //if input is quit

                        {

                                    FILE* filePointer;

                                    filePointer=fopen("output.txt","w");

                                    save_command(filePointer,stack1,elements);

                                    fclose(filePointer);

                                    printf("result > Good Bye!\n");

                                    exit(0);

                        }

                        else //if input is any other string add to stack

                                    stack1 = add(stack1,input);

            }

            return 0;

}

Expert Solution
steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Knowledge Booster
Concept of memory addresses in pointers
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