Hi,
I've been trying to debug this code for 4 days now. I can't figure out why it crashes. Here's my source code:
The text file is this:Code:#include <iostream> #include <fstream> using namespace std; bool isCalendar(char * str); int main (int argc, char * const argv[]) { //Load the file in question. { ifstream file; file.open("temp.txt", ios::binary); if (file.is_open()) { char str[100]; for (int i=0; i!=100; i++) { str[i]='E'; } for (int i=0; !isCalendar(str)&&!file.eof(); i++) { file>>str; cout<<str<<' '; } cout << endl; for (int i=0; i!=90; i++) { cout << str[i] << '-' << (int)str[i] << endl; } } else { cout << "Unable to open file"; } file.close(); } } bool isCalendar(char * str) { //return true; if (str[0]=='C') { if (str[1]=='a') { if (str[7]=='r') { if ((int)str[8]==0) { return true; } } } } return false; }
It's not the actual file, but it has all the same elements.Code:Blah, blah, blah CalendarNotRightOne Calendar" -not right one either Calendar -right one. blah, blah, blah.
The program searches through a long text file for the one and only phrase "Calendar" without anything else around it. There are multiple other instances of the same word, but they either have other words conjoined to them or have various punctuation attached. All three of these scenarios are represented above. For some reason, after preforming its duty perfectly, when it reaches the end of the file, it crashes. The only info I'm given is: "Program received signal SIGABRT" and the breakpoint window goes to a thread named "__kill", which is inside a thread named "__abort", which is inside a thread named "__stack_chk_fail" which is inside my main thread. Can anyone help me decipher these mysterious warnings, and also help me to fix my code?
I have also found, in my old-fashioned way of commenting out code and experimenting, that if you comment out the isCalendar() function like so:
... then the program runs fine.Code:if (str[7]=='r') { //if ((int)str[8]==0) { return true; //} }
Any and all help is greatly appreciated!


Reply With Quote

Bookmarks