Итак, я видел много решений на этом сайте и руководств по чтению из текстового файла на C++, но еще не нашел решения моей проблемы. Я новичок в C++, поэтому я думаю, что у меня возникли проблемы с составлением документации, чтобы понять все это.
То, что я пытаюсь сделать, это прочитать номера текстовых файлов, игнорируя комментарии в файле, обозначенные знаком «#». Таким образом, пример файла будет выглядеть так:
#here is my comment
20 30 40 50
#this is my last comment
60 70 80 90
Мой код может нормально читать числа, когда нет комментариев, но я недостаточно хорошо разбираюсь в потоке, чтобы игнорировать комментарии. Это своего рода решение для взлома прямо сейчас.
/////////////////////// Read the file ///////////////////////
std::string line;
if (input_file.is_open())
{
//While we can still read the file
while (std::getline(input_file, line))
{
std::istringstream iss(line);
float num; // The number in the line
//while the iss is a number
while ((iss >> num))
{
//look at the number
}
}
}
else
{
std::cout << "Unable to open file";
}
/////////////////////// done reading file /////////////////
Есть ли способ включить обработку комментариев в это решение или мне нужен другой подход? Любой совет был бы замечательным, спасибо.
line.assign(line.substr(0,line.find('#')));
(как первый оператор в цикле while) был бы одним из способов быстрого внесения необходимых изменений. - person jogojapan   schedule 09.11.2012