Я пытаюсь прочитать в файле, отформатированном как
firstName middleName (необязательно) lastName petName\n
Поскольку среднее имя находится на половине записей, я не уверен, как лучше всего их прочитать и получить в правильные имена переменных. Любая помощь будет принята с благодарностью.
Вы могли бы сделать что-то вроде этого:
std::string line, word;
while (std::getline(myFile, line)) {
if (line.empty()) continue;
// read words from line:
std::istringstream is(line);
std::vector<std::string> words;
words.reserve(4);
for (int i = 0; is >> words && i < 4; i++)
words.push_back(word);
if (words.size() == 4)
// middle name was present ...
else
// it was not ...
}
Если только middleName является необязательным, вы можете разделить строку и сохранить слова в std::vector<std::string>
. Затем проверьте, равен ли размер vector
4, тогда у вас есть middleName. Если размер равен 3, вы этого не сделаете.
for (int i = 0; is >> words; i++)
или простоwhile (is >> words)
?i < 4
чтобы больше слов не читалось.