program.exe has stopped working in code::block


I wrote a small program in c++, and it doesn't have any error on compile time but when I run the program, I'm facing with an error.Please help me to solve it. Thanks in advance.

Following is my code :




#include <iostream>
#include <fstream>
#include <string>

#include <sstream>
#include <stack>
#include <queue>

#include "QueType.h"
#include "StackType.h"
#include "tools.hpp"

#include <locale>

#include <list>

using namespace std;



bool isPalindrome(const string& stringToCheck)
{
string line2;
bool pal;
string wrdF;
stack<char> word1;
queue<char> word2;

char x,y;

line2=stringToCheck;

// make lowercase
for (size_t j=0; j< line2.length(); ++j)
{
line2[j] = tolower(line2[j]);
}


//
std::locale loc;
std::string str = line2 ;
std::string::size_type al=0;

wrdF = "";
std::string::size_type al2 = 0;
while ( (al<str.length()) ) {

if (std::isalnum(str[al])) {
wrdF += str[al];

al2++;
}

++al;
}

ItemType* items = new ItemType[al2];
strcpy(items,wrdF.c_str());

int oo=(int)al2;
for (int q=0;q<oo ;q++)
{
if (items[q] != ' ') {
word1.push(items[q]);
word2.push(items[q]);
}
}
pal = true;
while (!word1.empty() && !word2.empty())
{
x=word1.top();
y=word2.front();
if (x != y)
{
cout << "No palindrome" << endl;
pal=false;

break;
}
else
{
word1.pop();
word2.pop();
}

}

if (pal == true)
cout << " palindrome" << endl;

return(pal);

}


int main()
{

int row=0;
string line;
bool pali;
ifstream myfile ("palindrome-testfile.txt");

ofstream palin("palindromes.log");
ofstream nopalin("nopalindromes.log");

if (myfile.is_open())
{

while ( getline (myfile,line) )
{

// cout << line << '\n';
++row;
// cout<<row<<". ";


pali= isPalindrome(line);


if (pali)
{
palin << line << endl;
}
else
{
nopalin << line << endl;
}



}




myfile.close();
}

else cout << "Unable to open file";

return 0;
}
Last edited on
Topic archived. No new replies allowed.