В настоящее время я пишу программу на C++ для школы, которая включает в себя ввод данных как количество изменений, а затем рассказывать пользователю, сколько кварталов, копейки, никелей и пенни они требуют внести указанное изменение. Однако, если пользователь вводит какой-либо символ или строку, программа переходит в бесконечный цикл, печатая два или три моих сообщения на неопределенный срок. Есть функция или какой-либо другой метод, который я могу использовать для предотвращения этого?Функция C++ для проверки, является ли вход целым?
Edit: Вот некоторые из моего кода, что я думаю, что представляет собой проблему
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cctype>
#include <sstream>
using namespace std;
int main()
{
cout << "\nMake Change v0.6.4\n";
cout << "Type 0 at any time to exit the program.\n";
char confirmExit;
int amount;
while (tolower(confirmExit) != 'y')
// allows the user to continue using the program with having to type a.out everytime
// but quit the application at any time with two keystrokes and
// confirmation so as to not accidentally exit the program
{
cout << "\nEnter the amount of change as an integer: ";
// input total cents to be worked with
cin >> amount;
if ((amount)!int)
{
cout << "\nMake sure to type an integer!\n";
}
else if (amount == 0)
{
cout << "Are you sure you want to exit the program(y/n)? ";
cin >> confirmExit;
// confirmation to prevent accidentally exiting out
}
cout << "\n";
return (0);
}
Разместите код и кто-то может быть в состоянии помочь. –
Простите, я внес некоторые изменения. –
Я не вижу никаких петель. Ваш код, демонстрирующий проблему, не завершен. В идеале вы должны предоставить образец (после удаления всего, что не имеет значения для вашей проблемы), которое можно скопировать/вставить, скомпилировать и запустить, чтобы продемонстрировать проблему. –