テキストファイル内のコメント、空白行、余分なスペースを削除して残りの要素をトークン化しようとしています。各トークンは前後にスペースが必要です。ここでC++でコメント、余分な空白、空白行を削除して、テキストファイルから要素をトークン化します。
exampleFile.txt
var
/* declare variables */a1 ,
b2a , c,
は今のとして働いているものだ、
string line; //line: represents one line of text from file
ifstream InputFile("exampleFile", ios::in); //read from exampleFile.txt
//Remove comments
while (InputFile && getline(InputFile, line, '\0'))
{
while (line.find("/*") != string::npos)
{
size_t Begin = line.find("/*");
line.erase(Begin, (line.find("*/", Begin) - Begin) + 2);
// Start at Begin, erase from Begin to where */ is found
}
}
これは、コメントを削除しますが、私はこの問題が発生している間トークン化する方法を見つけ出すように見えることはできません。
だから私の質問は以下のとおりです。
- はそれがコメント、スペース、空行を削除して、このwhile文ですべてをトークン化することは可能ですか?
- トークン化される前に各トークン間にスペースを追加する機能を実装するにはどうすればよいですか? cのようなトークンは、cと、個々に認識される必要があります。
ありがとうございました!
トピックをオフにする:あなた自身の検索を保存します。 'while((size_t Begin = line.find( "/ *"))!= string :: npos) ' – user4581301
オフトピック:ブロックコメントが同じ行ですか? – user4581301
そして別の話題:プログラムがwhile(line.find( "/ *")!= string :: npos)で/ *を見つけたときに何が起こるか考えてみましょう。 – user4581301