c++ - File I/O operations - strange character entry? -
i using str.erase()
function in following program erase part of output. @ last getting strange output ����
.
the content of file current name of file = abcd-1234
here code:
#include <iostream> #include <fstream> #include <string> #include <stdio.h> #include <stdlib.h> using namespace std; //std::ifstream; int main () { string line; ifstream myfile ("/home/highlander141/netbeansprojects/erase_remove/dist/debug/gnu-linux-x86/abc.txt"); if (myfile.is_open()) { while ( !myfile.eof() ) //myfile.good() { getline (myfile,line); //line = myfile.get(); //if(!myfile.eof()) cout << line <<endl; std::string str (line); str.erase (str.begin()+0, str.end()-9); std::cout << str << endl; } myfile.close(); //remove("/home/highlander141/netbeansprojects/erase_remove/dist/debug/gnu-linux-x86/abc.txt"); } else cout << "unable open file"; return 0; }
and output of program is
current name of file = abcd-1234 abcd-1234 ���� run finished; exit value 0; real time: 10ms; user: 0ms; system: 0ms
you checking eof()
before reading input. modify loop follows:
while ( 1 ) { getline (myfile,line); if ( myfile.eof() ) break; // rest of loop }
Comments
Post a Comment