читать файл по одной строке за раз с переменным количеством данных в каждой строке

У меня есть вопрос о том, как читать данные из моего входного файла .dat, используя isstream для использования в качестве реализации аккордов
У меня есть входы различной длины и типа. пример моего ввода показан ниже:

addC 2 # игнорировать это сообщение
addC 3 # игнорировать это сообщение
addC 9 # игнорировать это сообщение
печать 9
вставить 2 data0
вставить 9 данных1
вставить 3 data2

Я хотел бы захватывать каждую строку ввода за строкой, игнорируя любые сообщения за ключом #.

То, что я сделал до сих пор, выглядит следующим образом:

if (myfile.is_open())
{
while (getline(myfile, line))
{
string command;
string id;
string input;
unsigned int hashKey = 0;

istringstream iss(line);
getline(iss, command, ' ');
getline(iss, number, ' ');
getline(iss, message, '#');
//other codes
}
}

однако, когда я читаю в своем файле, кажется, что он иногда читает больше, чем требуется. например,

// первые несколько команд до вставки 0 в порядке
команда = вставить номер = 2 вход = данные0
ВСТАВКА data0 в: 2
команда = вставить номер = 9 вход = данные1
команда = вставить номер = 3 ввода = данные2
// программа останавливается из-за ошибки чтения

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]