Помогите разобраться с кодом С++
- Войдите на сайт для отправки комментариев
Чт, 22/03/2018 - 21:50
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int dec(string s);
int main()
{
string str,temp;
cout <<"Stroka: ";
cin>>str;
int rez = 0;
int i = 0;
char ch;
while (isdigit(str[i]))
{
temp.append (1,str[i]);
++i;
}
rez = dec(temp);
while (i<str.size())
{
ch = str[i];
temp.erase(0,temp.length());
i++;
while (i<str.size() && isdigit(str[i]))
{
temp.append (1,str[i]);
++i;
}
switch(ch)
{
case '+': rez+=dec(temp);
break;
case '-': rez-=dec(temp);
}
}
cout <<rez <<endl;
system("PAUSE");
return 0;
}
int dec (string s)
{
char l[]={'0','1','2','3','4','5','6','7','8','9'};
int n = 0,j;
for (int i=0; i<s.size(); i++)
{
for (j=0; j<10; j++)
if (s[i]==l[j])
break;
n*=10;
n+=j;
}
return n;
}
вставьте код по правилам форума
а что надо-то?
Код - довольно-таки дилетантская реализация простейшего калькулятора, умеющего складывать или вычитать вводимые с консоли числа.
Я просто не понимаю, что делают while, первый просто для проверки на дсятичное число, а вот со вторым и третьим не смог разобраться
Совсем уже охренели! Читай учебник, даун, мля. Какое отношение имеет этот код к Ардуино?!
Какое отношение имеет этот код к Ардуино?!
никакого - а, шо такое? О_О
Я просто не понимаю, что делают while, первый просто для проверки на дсятичное число
Вовсе не для проверки. Первый while извлекает из введенной строки цифровые символы и добавляет их в переменную temp. потом она преобразуется в число. Второй и третий циклы находят в строке второе число и знак операции.
даун, мля
Завтра, вроде как праздник - хоть вообще на форуме не показывайся :(
А то ведь придётся вот так объяснять что while делает :)