Я пытаюсь исключить комментарии, пустые строки и дополнительные пробелы в текстовом файле, а затем пропустить оставшиеся элементы. Каждому токену требуется пространство до и после.Токсизировать элементы из текстового файла, удаляя комментарии, лишние пробелы и пустые строки в 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
}
}
Это удаляет комментарии, но я не могу показаться, чтобы выяснить способ разметить в то время как это происходит.
Так что мои вопросы:
- Можно ли удалить комментарии, пробелы и пустые строки и разметить все в это время заявление?
- Как я могу реализовать функцию для добавления пробелов между каждым токеном до их токенизации? Токены, подобные c, должны быть распознаны как c и, в отдельности.
Благодарим вас за помощь!
Отключить тему: сохранить поиск: 'while ((size_t Begin = line.find ("/* "))! = String :: npos)' – user4581301
Off topic: Что делать, если комментарий блока не заканчивается на такая же линия? – user4581301
И еще одна тема: подумайте о том, что произойдет, когда программа найдет/* in 'while (line.find ("/* ")! = String :: npos)'. – user4581301