Не о том спрашиваете.
Любой цикл можно использовать:
for(;;) {...}
while(true) {...}
do {...} while(true)
Выходить из цикла с помощью break, когда ввод будет нормальный или изменить условие цикла.
На самом деле вечный цикл в данном случае не нужен. Лучше всего предусмотреть, например, 3 попытки ввода, и если не удачно - завершаемся. В этом случае for() подойдет лучше всего.
В целом в С/С++ циклы for и while имеют одинаковую функциональность, но for более приспособлен для счетчиков и т.п., т.к. в нем инициализация, условие и концовка цикла собраны в одной строке (более компактно, чем while). То же самое можно сделать и в while, но инициализацию и концовку придется написать отдельно.