Hi all, I have little problem when reading a file char by char and when i tried to make a check at the end of file. I am making a check through '\n' but its not working. Please have a look in the following Program and let me know yours suggestion. The following Program removes comments from a C++ file. The logic of this program is taken from state machine diagram. Code: #include<iostream> #include<fstream> using namespace std; class stateMachine{ public: stateMachine(); ~stateMachine(); void process_input(); private: enum StateNames { A = 1, B, C, D, E}; int currState; ifstream orgnl; ofstream bakup; }; stateMachine::stateMachine(){ orgnl.open("exp1.cpp"); bakup.open("exp2.cpp"); currState = A; } stateMachine::~stateMachine(){ orgnl.close(); bakup.close(); } void stateMachine::process_input(){ char ch; while(!orgnl.eof()){ orgnl >> ch; switch(currState){ case A: { if (ch == '/' || ch == '*') currState = B; break; } case B: { if(ch == '/') currState = C; else if(ch == '*') currState = D; else currState = A; break; } case C: { cout<<"Char is : "<<ch<<"\tand Current state is : "<<currState<<endl; if(ch == '\n') currState = A; break; } case D: { if(ch == '*') currState = E; break; } case E: { if(ch == '/') currState = A; else currState = D; break; } } if(currState == A) bakup << ch; } } int main(){ stateMachine sm; sm.process_input(); system("pause"); return 0; } exp1.cpp file contais: Code: #include<iostream> using namespace std; int main(){ char ch; //char /*inputting char and int*/ return 0; }[FONT=tahoma] [/FONT] The output of above program is (i have putted cout in state C): Code: Char is : c and Current state is : 3 Char is : h and Current state is : 3 Char is : a and Current state is : 3 Char is : r and Current state is : 3 Char is : / and Current state is : 3 Char is : * and Current state is : 3 Char is : i and Current state is : 3 Char is : n and Current state is : 3 Char is : p and Current state is : 3 Char is : u and Current state is : 3 Char is : t and Current state is : 3 Char is : t and Current state is : 3 Char is : i and Current state is : 3 Char is : n and Current state is : 3 Char is : g and Current state is : 3 Char is : c and Current state is : 3 Char is : h and Current state is : 3 Char is : a and Current state is : 3 Char is : r and Current state is : 3 Char is : a and Current state is : 3 Char is : n and Current state is : 3 Char is : d and Current state is : 3 Char is : i and Current state is : 3 Char is : n and Current state is : 3 Char is : t and Current state is : 3 Char is : * and Current state is : 3 Char is : / and Current state is : 3 Char is : r and Current state is : 3 Char is : e and Current state is : 3 Char is : t and Current state is : 3 Char is : u and Current state is : 3 Char is : r and Current state is : 3 Char is : n and Current state is : 3 Char is : 0 and Current state is : 3 Char is : ; and Current state is : 3 Char is : } and Current state is : 3 Char is : } and Current state is : 3 Press any key to continue . . . Which indicates program is stuck on state 'C'. Why Program is not getting identify '\n' as eol. What could be the right solution to make this program work.