Пост не совсем понятен, но с учетом приведенной информации это то, что я придумал на лету:
Сначала создайте контейнер (массив, вектор, список, карту и т. Д.) Для хранения имен Штатов. Это необходимо для проверки правильности серии записей.
Теперь вы сказали, что записи (каждая отдельная запись [то есть имя, имя, штат, компания]) разделены переводами строки. Используя эту информацию, я буду читать строки, пока вы не наберете пустую строку и не сохраните их в контейнере для временного хранения.
Когда вы достигнете новой строки (сигнализируя о новой записи), проверьте временный контейнер. Если он содержит 4 строки (строки) и имеет порядок: non-state, non-state, state, non-state; затем сочтите это действительной записью и сохраните ее в постоянном контейнере и очистите временный контейнер.
Продолжайте, пока не дойдете до конца файла.
Надеюсь, что это помогает и имеет смысл, поскольку вы явно просили отсутствие кода.