Учитывая их опыт, возможно, хороший фокус на C для встроенных систем, включая:
И очень существенно: ПО для управления версиями . Я работаю в промышленности и использую это религиозно, но я поражен тем, что это никогда не упоминалось в моей степени!
Доступна функция игнорирования
:
std::cin << val1;
std::cin.ignore (9999, ' ');
std::cin << val3;
Первый аргумент определяет количество символов, которые нужно пропустить, второй параметр - это разделитель, на котором нужно прекратить пропуск.
Вы можете обернуть это в пользовательский манипулятор, поскольку он уродлив.
Вот пользовательский манипулятор:
template <class charT, class traits>
inline std::basic_istream<charT, traits> &
ignoreToken (std::basic_istream<charT, traits> &strm)
{
strm.ignore (9999, ' ');
return strm;
}
И вы можете использовать его так:
cin >> val1 >> ignoreToken >> val3 >> ignoreToken >> val5;
(ps - я не компилировал это, поэтому там возможно опечатка).
Вы можете сделать это намного проще с помощью getline (). Просто используйте его, чтобы захватить всю строку, а затем проанализировать значения между токенами (использовать strtok?)
С getline () существует множество других проблем, но это должно сработать для вашей проблемы.
Я бы просто прочитал это в фиктивную переменную. Если со временем он вам понадобится, он будет доступен.
Вы можете использовать
cin.ignore(256, ' ');
Это игнорирует все, вплоть до 256 символов или пробелов.
Редактировать (форматирование и ...): альтернативы, которые вы можете сделать:
int a, b;
cin >> a >> b >> b;