Как читать слова с игнорированием пробелов из файла в C ++?

В моем файле каждая строка такова:

«ID: HH-123AB, марка: Mercedes-Benz, 128000 миль, 12 л \ н»

ID :, бренд: мили, и L одинаково во всех рядах.
Кому я могу сканировать только HH-123AB, Mercedes-Benz, 128000 и 12?

-1

Решение

Вы можете использовать следующую функцию для «токенизации» строки

vector<std::string> tokens(const std::string& csv, char separatedBy) {
vector<std::string> tokenized;
stringstream str(csv);
while(!(str.fail())) {
std::string token;
getline(str, token, separatedBy);
tokenized.push_back(token);
}

// Used std::move for performance only, you
//   could just return it, but it will be
//   copied
return std::move(tokenized);
}

Эта функция «токенизирует» строку, разбивая ее, используя символ-разделитель.

Тогда по вашей основной функции:

std::string line;
// Get the whole line
getline(cin, line);
// Get all "comma separated tokens"vector<std::string> commaSeparated = tokens(line, ',');

Затем проанализируйте каждую его часть, как вы хотите, например:

// First space separated token in the first comma separated one
cout << tokens(commaSeparated[0], ' ')[1] << "\n";
// Second space separated token in the second comma separated one
// Note: The first space is considered one
cout << tokens(commaSeparated[1], ' ')[2] << "\n";
// First space separated token in the third comma separated one
cout << tokens(commaSeparated[2], ' ')[1] << "\n";
// First space separated token in the fourth comma separated one
cout << tokens(commaSeparated[3], ' ')[1] << "\n";
1

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru