Мой код читает неопределенное количество целых чисел, по два за раз: while (cin>>a>>b)
.Разрыв Cpp-петли с "|"
Я хочу, чтобы цикл прерывался, когда |
вводится и присваивается либо a
, либо b
.
a
и b
оба должны быть объявлены как int
. Я бы тогда сравнить: a
или b
==int('|')
Defining «а» и «б», как char
типа первоначально, позволил мне юбку проблемы, но не идеально.
Это глава 4 дрель в Stroustrup's Принципы и практика с использованием C++ (стр. 124).
Я думаю, что я понимаю, что чтение |
в переменную int пытается преобразовать string
в int
(неприемлемо?). Строуструп говорит, чтобы использовать персонажа, чтобы закончить цикл в его упражнении, но он не объясняет, как он использовал его раньше, когда упоминал об этом в книге. Есть ли способ использовать символ |
, если требуется, используя только базовый код, обсуждаемый до этого момента в книге? Спасибо заранее.
Символа '|' не является допустимым число , поэтому вход будет терпеть неудачу, и ваш цикл сломается. Однако он не будет присваиваться 'a' или' b'. Если вы хотите обрабатывать нецелый текст, вам нужно прочитать строку или символ. – paddy
Нет, '|' на самом деле просто не 'int'. (Возможно, есть 'boost :: glyph_cast', который вернет' 1'. Я не просмотрел его.) – Potatoswatter
Итак, '|' ** предназначен ** для отказа в качестве входа для разрыва цикла? Ха-ха. Ну, это было весело, пытаясь обработать его весь день. Спасибо вам обоим. – James