Cześć,
Jak w temacie mam problem z zadaniem kalkulatora a konkretnie z ostatnią pustą linia. Szukałem już na forum, znalazłem dwie wskazówki i już jestem blisko ale jednak coś mi w kodzie nie działa. Chodzi mi o problem z pustą linią, jak sobie z nią poradzić?
Początkowo zbudowałem sobie taki kod:
int main ()
{
char ch;
int a, b;
while(cin >> ch >> a >> b)
{
if(ch == ‘+’) cout << a + b;
else if(ch == ‘-’) cout << a - b;
else if(ch == ‘*’) cout << a * b;
else if(ch == ‘/’) cout << a / b;
else cout << a % b;
cout << "\n";
}
Później przerzuciłem się na coś takiego:
#include
#include
#include
using namespace std;
int main()
{
char ch;
int a, b;
vector vec;
string line;
string data[3];
getline(cin, line);
do
{
if (line.empty()) break;
else
{
for (int i = 0, j = 0; i < line.size(); i++)
{
if (line.at(i) != ' ') data[j] += line.at(i);
else j++;
}
ch = data[0].at(0);
a = stoi(data[1]);
b = stoi(data[2]);
if (ch == '+') vec.push_back(a+b);
else if (ch == '-') vec.push_back(a - b);
else if (ch == '*') vec.push_back(a * b);
else if (ch == '/') vec.push_back(a / b);
else vec.push_back(a%b);
}
} while (getline(cin, line));
for (int i : vec)
cout << i << endl;
return 0;
}
Drugi program dla pierwszej lini robi robotę ale przy drugim działaniu już coś jest nie tak.
Z góry dziękuję za wskazówki.