Может ли XCode смешать буферизованные и небуферизованные функции ввода?

Я создал эту простую программу для практики работы с классами. Я уверен, что есть некоторые ошибки в том, как я использовал класс, но я только начинаю узнавать о них, поэтому я не изучил все условности и этикет. Мой главный вопрос: могут ли Xcode иметь функции с буферизацией и другие функции без буферизации? Я хотел бы мою функцию void InputValuesAndDisplayTotals(); быть в буфере и моя функция void ManuallyAddCoinsAndDisplayTotals(); быть небуферизованным (в основном, нажмите клавишу, и персонаж будет мгновенно обработан без использования клавиши ввода). Это возможно? Заранее спасибо.

#include <iostream>
#include <iomanip>
using namespace std;

class Coin
{
private:

const float PENNYVALUE   = 0.01;
const float NICKELVALUE  = 0.05;
const float DIMEVALUE    = 0.10;
const float QUARTERVALUE = 0.25;

int PennyInput=0;
int NickelInput=0;
int DimeInput=0;
int QuarterInput=0;

public:

void InputValuesAndDisplayTotals();
void ManuallyAddCoinsAndDisplayTotals();
void Total();
};

int main()
{
int Choice;

Coin Count;

cout << "1 to enter total coin counts, 2 to manually count coins: ";
cin >> Choice;

if (Choice==1)
{
Count.InputValuesAndDisplayTotals();
Count.Total();
}

else
{
Count.ManuallyAddCoinsAndDisplayTotals();
}

cout << endl;
}

void Coin::InputValuesAndDisplayTotals()
{
cout << fixed << setprecision(2) << endl;

cout << "Input penny count:   ";
cin >> PennyInput;
cout << "Total penny value:   $" << PENNYVALUE*PennyInput;
Total();
cout << endl;

cout << "Input nickel count:  ";
cin >> NickelInput;
cout << "Total nickel value:  $" << NICKELVALUE*NickelInput;
Total();
cout << endl;

cout << "Input dime count:    ";
cin >> DimeInput;
cout << "Total dime value:    $" << DIMEVALUE*DimeInput;
Total();
cout << endl;

cout << "Input quarter count: ";
cin >> QuarterInput;
cout << "Total quarter value: $" << QUARTERVALUE*QuarterInput;
Total();
}

void Coin::ManuallyAddCoinsAndDisplayTotals()
{
char Choice2;

cout << "\n'1' for penny,\n'2' for nickel,\n'3' for dime,\n'4' for quarter,\n'q' to quit\n";

do
{
cout << "\nInput: ";
cin >> Choice2;

if (Choice2=='1')
++PennyInput;

if (Choice2=='2')
++NickelInput;

if (Choice2=='3')
++DimeInput;

if (Choice2=='4')
++QuarterInput;

cout << endl;

cout << "Pennies:  " << PennyInput   << endl;
cout << "Nickels:  " << NickelInput  << endl;
cout << "Dimes:    " << DimeInput    << endl;
cout << "Quarters: " << QuarterInput << endl;

Total();
}
while (Choice2!='q' && Choice2!='Q');
}

void Coin::Total()
{
cout << "\nTotal amount: $";

cout << fixed << setprecision(2) << (PENNYVALUE*PennyInput)+(NICKELVALUE*NickelInput)+(DIMEVALUE*DimeInput)+(QUARTERVALUE*QuarterInput);

cout << "\n";
}

1

Решение

Задача ещё не решена.

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

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