187k views
3 votes
Write a program that opens a text file (name the textfile "problem4.txt") and reads its contents into a queue of characters. The user must then enter a character they are looking for. The program should then dequeue each character and count the number of characters that are equal to what the user is looking for. Output the count of the character or lack thereof in a second file (name the textfile "resultsp4.txt")

User Jgivoni
by
4.7k points

1 Answer

3 votes

Answer:

See explaination

Step-by-step explanation:

/* reading a text file Character by Character

* Enter the character to Queue

* Search Specific character and Printingits occurrence

* otherwise Lack thereof

*/

// Include header file for File Reading

#include <iostream>

#include <fstream>

// Maximum no of character in a file

# define N 50

using namespace std;

// Queue Data Structure

typedef struct

{

char arr[N];

int front;

int rear;

int size;

}Queue;

// Function Prototypes

void initialize(Queue*);

void Enqueue(Queue*,char);

char Dequeue(Queue*);

int isEmpty(Queue*);

int isFull(Queue*);

int Qsize(Queue*);

int main () {

// Variable Declaration

char ch;

char searchchar;

// Allocating memeory for the Queue.

Queue *Q=(Queue *)malloc(sizeof(Queue));

// Reading from the file

fstream fin("problem4.txt", fstream::in);

//initialize Queue with front rear and size

initialize(Q);

//Looping through the file and Enqueue it in Queue

while (fin >> noskipws >> ch) {

Enqueue(Q,ch);

}

// close the opened file.

fin.close();

int i=0;

int n=Qsize(Q);

int count=0;

//Asking user for Input

cout << "Please character to found ";

cin >> searchchar;

while (i<n) {

if(Dequeue(Q)==searchchar)

count++; // if found increase the count

i++;

}

// Total Count od character searched

cout << "Total Count of Character " << count << endl;

// Output Total Count of Character to a file named resultsp4.txt

ofstream outfile;

outfile.open("resultsp4.txt");

cout << "Writing to the file" << endl;

if (count>0)

outfile << "The total occurence of the " << searchchar <<" is "<< count <<endl;

else

outfile << "lack thereof " << searchchar <<endl;

// close the opened file.

outfile.close();

return 0;

}

void initialize(Queue *Q)

{

Q->front=-1;

Q->rear=-1;

Q->size=0;

}

void Enqueue(Queue * Q,char ch)

{

(Q->rear)+=1;

(Q->arr[Q->rear])=ch;

(Q->size)++;

}

char Dequeue(Queue * Q)

{

char ch=Q->arr[Q->front];

(Q->front)++;

(Q->size)--;

return ch;

}

int isEmpty(Queue * Q)

{

if ((Q->size)==0)

return 1;

else

return 0;

}

int isFull(Queue * Q)

{

if ((Q->size)==N)

return 1;

else

return 0;

}

int Qsize(Queue * Q)

{

return Q->size;

}

User Bloveless
by
3.7k points