#include <string>
#include <list>
#include <algorithm>
#include <fstream>
#include <iterator>
#include <iostream>
using namespace std;
bool isValidLine(string line);
int main(int argc, char * argv[])
{
if(argc < 2)
{
cout<<"Usage :" << argv[0]<<" FileName"<<endl;
return 20;
}
ifstream inFile(argv[1],ios::in);
if(!inFile)
{
cout<<" can't open "<<argv[1]<<endl;
}
string temp;
list<string> validLines;
while(getline(inFile,temp))
{
if(isValidLine(temp))
validLines.push_back(temp);
}
inFile.close();
string renamefile(argv[1]);
renamefile+=".bak";
rename(argv[1],renamefile.c_str());
ofstream outFile(argv[1]);
if(!outFile)
{
cout<<"can't open "<<argv[1]<<" for write access"<<endl;
return 20;
}
copy(validLines.begin(),validLines.end(),ostream_iterator<string>(outFile,"\n"));
return 0;
}
bool isValidLine(string line)
{
string::size_type emptypos;
emptypos = line.find_first_not_of(" ");
if(emptypos != string::npos)
line.erase(0,emptypos);
if(line.empty() == true)
return false;
const string kommentar("//");
return line.find(kommentar) == string::npos; }