Как исправить ошибку в C++
Учу C++. Сделал консольный калькулятор. Когда пишу много чисел и нажимаю enter появляется это:
Когда пишу строчные буквы тоже так. Почему так происходит? Вот код:
#include <iostream>
#include <string>
int main()
{
int a;
int b;
std::string c;
std::cout << "Input first number: ";
std::cin >> a;
std::cout << "Input second number: ";
std::cin >> b;
std::cout << "Choice symbol +,-,/,*: ";
std::cin >> c;
if (c == "+") {
int d = a + b;
std::cout << "Result: " << d << "\n";
}
else if (c == "-") {
int d = a - b;
std::cout << "Result: " << d << "\n";
}
else if (c == "/") {
int d = a / b;
std::cout << "Result: " << d << "\n";
}
else if (c == "*") {
int d = a * b;
std::cout << "Result: " << d << "\n";
}
else {
std::cout << "Input symbol!!!";
}
std::string ret;
std::cout << "Return? y or n: ";
std::cin >> ret;
if (ret == "n") {
}
else {
main();
}
}
Ответы (2 шт):
Автор решения: Serj525
→ Ссылка
main() это точка входа в программу, её не нужно рекурсивно вызывать. То что вы хотите добавте ваш код в цилк do while:
Автор решения: chip
→ Ссылка
Можно так
#include <iostream>
#include <string>
int a, b;
std::string c, ret = "n";
void Calk() {
for(;;) {
std::cout << "Input first number: " << "\n";
std::cin >> a;
std::cout << "Input second number: " << "\n";
std::cin >> b;
std::cout << "Choice symbol +,-,/,*: " << "\n";
std::cin >> c;
if (c == "+") {
int d = a + b;
std::cout << "Result +: " << d << "\n";
std::cout << "Return? y or n: " << "\n";
std::cin >> ret;
if (ret == "n") {
break;
}
}
else if (c == "-") {
int d = a - b;
std::cout << "Result -: " << d << "\n";
std::cout << "Return? y or n: " << "\n";
std::cin >> ret;
if (ret == "n") {
break;
}
}
else if (c == "/") {
int d = a / b;
std::cout << "Result /: " << d << "\n";
std::cout << "Return? y or n: " << "\n";
std::cin >> ret;
if (ret == "n") {
break;
}
}
else if (c == "*") {
int d = a * b;
std::cout << "Result *: " << d << "\n";
std::cout << "Return? y or n: " << "\n";
std::cin >> ret;
if (ret == "n") {
break;
}
}
else {
std::cout << "Input symbol!!!";
std::cout << "Return? y or n: " << "\n";
std::cin >> ret;
if (ret == "n") {
break;
}
}
}
}
int main()
{
Calk();
}
Код можно сократить но пока так вам будет более понятно. А то что вы делаете c main это немного не обычно :)