///beforeBegin.cpp
// 預先處理來源程式,去除檔案中的注釋字元 // 和 /* lllll */
#include <string>
#include <cstddef>
#include <sstream>
#include <fstream>
#include <iostream>
using namespace std;
//刪除字串中的 // 注釋符
string& deleteNote1(string& ss){
size_t lookHere = 0 ;
size_t foundHere;
size_t secondHere;
while((foundHere = ss.find("//",lookHere)) != string::npos){
secondHere = ss.find("/n",foundHere);
ss.erase(foundHere,secondHere-foundHere);
lookHere = foundHere;
}
return ss;
}
//刪除字串中的 /* */ 注釋符
string& deleteNote2(string& ss){
size_t lookHere = 0 ;
size_t foundHere;
size_t secondHere;
while((foundHere = ss.find("/*",lookHere)) != string::npos){
secondHere = ss.find("*/",foundHere);
ss.erase(foundHere,secondHere-foundHere+2);
lookHere = foundHere;
}
return ss;
}
string& beforeBegin(string& ss){
return deleteNote1(deleteNote2(ss));
}
int main(){
ifstream in("Wowbull.cpp");
ostringstream oss;
oss << in.rdbuf();
//string s = oss.str();
//istringstream ins(replaceAll(s,"from","to"));
ofstream out("www.cpp");
// out << ins.str();
out << beforeBegin(oss.str());
return 0;
}