Поэтому я делаю приложение на C ++ для решения некоторых упражнений.
int i=1;
cout << "How many times :";
cin >> n;
while (n>0)
{
cout << "Input F" << i << ":";
if (cin >> a[i] && cin >> sign&& cin>>b)
{
switch (sign)
{
case'$': a[i] = a[i] * (sqrt(b));
break;
case'^': a[i] = pow(a[i], b);
break;
case'/':a[i] = a[i] / b;
break;
default: cout << "\n Wrong sign";
break;
}
}
else
a[i]=a[i];
i++;
n--;
}
В некоторых случаях мне не нужны переменные sing или b … и приложение, позволяющее мне завершить работу, если я нажму Enter.
Например: мне нужно ввести F1: 8sqrt (2), и я наберу 8 $ 2, затем F2: просто 8, затем я нажимаю Enter, но приложение продолжает запрашивать значения.
Хорошо, теперь, чтобы это заработало, мне нужно дважды ввести знак …
while (n>0)
{
cout << "Input F" << i << ":";
cin >> a[i];
if (cin.get() == '\n')
a[i] = a[i];
else {
cin >> sign;
if (sign)
cin >> b;
switch (sign)
{
case'$':
a[i] = a[i] * (sqrt(b));
break;
case'^': a[i] = pow(a[i], b);
break;
case'/':a[i] = a[i] / b;
break;
default: cout << "\n Wrong sing;
break;
}
}
i++;
n--;
}
Спасибо за ваше время.
Вы сказали:
В некоторых случаях мне не нужны переменные sing или b … и приложение, позволяющее мне завершить работу, если я нажму Enter.
Это потому, что программа ждет от вас ввода всех значений, необходимых для
if (cin >> a[i] && cin >> sign&& cin>>b)
Вы можете выйти из этого оператора, введя все необходимые входные данные или введя EOF (ввод EOF зависит от платформы).
Вам будет лучше, если вы будете читать строку ввода построчно и обрабатывать каждую строку независимо, используя std::istringstream
,
while (n>0)
{
std::string line;
cout << "Input F" << i << ":";
if ( ! getline(cin, line) )
{
// Error reading the next line.
break;
}
// Now extract the data from the line using a istringstream.
std::istringstream str(line);
if (str >> a[i] && str >> sign && str >> b)
{
switch (sign)
{
case'$': a[i] = a[i] * (sqrt(b));
break;
case'^': a[i] = pow(a[i], b);
break;
case'/': a[i] = a[i] / b;
break;
default: cout << "\n Wrong sign";
break;
}
}
else
a[i]=a[i];
i++;
n--;
}
Других решений пока нет …