I am trying to determine whether a word is a palindrome or not using queues in my program below. However, I am currently having a problem. When I compile and execute my program, the output screen comes up and disappears very fast. Afterwards, I ran the program using the command prompt.
The error that I received was
"Assertion failed: !isEmptyQueue(), file C:\Documents and Settings\winuser\Deskto
p\/queue.h, line 60
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
"
I went to look around in my queue.h to find the problem, but I could not find the problem at all. I even rebuilt my queue.h from scratch again using the exact information that is in a book. If anyone can help me on this. I appreciate it. Thanks
#include <fstream>
#include <string>
#include <sstream>
#include <stdlib.h>
#include "queue.h"
usingnamespace std;
int main()
{
stringstream ss;
string line; // name of my identifier used to read in data
string word; // individual characters
queueType<string> u; // declares queue u
queueType<string> r; // declare queue r
queueType<string> s; // declare queue s
int counter = 0; // declares counter
ifstream inData("input.txt"); // declaration of inData
ofstream outData("output.txt"); // declaration of outData
u.initializeQueue();
r.initializeQueue();
s.initializeQueue();
while ( getline( inData, line ) ) // reads words in file using getline to capture all spaces
{ /*something to break up line into individual character*/
ss << line;
while ( ss >> word )/*there are still characters*/
{
u.addQueue(word);
s.addQueue(word); /*adds characters of word into queues u and s*/
}
while (!u.isEmptyQueue()) /*u is not empty*/
{
r.addQueue(u.front());
/*adds to the front of u into r and then delete from u*/
u.deleteQueue();
}
while (!s.isEmptyQueue())/*s is not empty*/
{
if(!(u.front() == r.front())) /*compares front elements, does something if the two not equal, delete elements*/
{
counter++;
}
u.deleteQueue();
r.deleteQueue();
}
counter/=2;
switch (counter)
{
case 0:
outData<<word<<" is a Palindrome"<<endl;
break;
case 1:
outData<<word<<" is NOT a Palindrome"<<endl;
break;
}
ss.clear();
}
inData.close(); // closes inData
outData.close(); // closes outData
system("PAUSE");
return 0;
}
#include <fstream>
#include <string>
#include <sstream>
#include <stdlib.h>
#include "queue.h"
usingnamespace std;
int main()
{
stringstream ss;
string line; // name of my identifier used to read in data
string word; // individual characters
queueType<string> u; // declares queue u
queueType<string> r; // declare queue r
queueType<string> s; // declare queue s
int counter = 0; // declares counter
ifstream inData("input.txt"); // declaration of inData
ofstream outData("output.txt"); // declaration of outData
u.initializeQueue();
r.initializeQueue();
s.initializeQueue();
while ( getline( inData, line ) ) // reads words in file using getline to capture all spaces
{ /*something to break up line into individual character*/
ss << line;
while ( ss >> word )/*there are still characters*/
{
u.addQueue(word);
s.addQueue(word); /*adds characters of word into queues u and s*/
}
while (!u.isEmptyQueue()) /*u is not empty*/
{
r.addQueue(u.front());
/*adds to the front of u into r and then delete from u*/
u.deleteQueue();
}
while (!s.isEmptyQueue())/*s is not empty*/
{
if(!(u.front() == r.front())) /*compares front elements, does something if the two not equal, delete elements*/
{
counter++;
}
u.deleteQueue();
r.deleteQueue();
s.deleteQueue();
}
counter/=2;
switch (counter)
{
case 0:
outData<<word<<" is a Palindrome"<<endl;
break;
case 1:
outData<<word<<" is NOT a Palindrome"<<endl;
break;
}
ss.clear();
}
inData.close(); // closes inData
outData.close(); // closes outData
system("PAUSE");
return 0;
}
#include <fstream>
#include <string>
#include <sstream>
#include <stdlib.h>
#include "queue.h"
usingnamespace std;
int main()
{
stringstream ss;
string line; // name of my identifier used to read in data
string word; // individual characters
queueType<string> u; // declares queue u
queueType<string> r; // declare queue r
queueType<string> s; // declare queue s
int counter = 0; // declares counter
ifstream inData("input.txt"); // declaration of inData
ofstream outData("output.txt"); // declaration of outData
u.initializeQueue();
r.initializeQueue();
s.initializeQueue();
while ( getline( inData, line ) ) // reads words in file using getline to capture all spaces
{ /*something to break up line into individual character*/
ss << line;
while ( ss >> word )/*there are still characters*/
{
u.addQueue(word);
s.addQueue(word); /*adds characters of word into queues u and s*/
}
while (!u.isEmptyQueue()) /*u is not empty*/
{
r.addQueue(u.front());
u.deleteQueue();
/*adds to the front of u into r and then delete from u*/
}
while (!s.isEmptyQueue())/*s is not empty*/
{
s.deleteQueue();
u.addQueue(word);
if(!(u.front() == r.front())) /*compares front elements, does something if the two not equal, delete elements*/
{
counter++;
}
u.deleteQueue();
r.deleteQueue();
}
counter/=2;
switch (counter)
{
case 0:
outData<<word<<" is a Palindrome"<<endl;
break;
case 1:
outData<<word<<" is NOT a Palindrome"<<endl;
break;
}
ss.clear();
}
inData.close(); // closes inData
outData.close(); // closes outData
system("PAUSE");
return 0;
}