Проблема с выводом числа (С++)
Пишу программу, которая должна считывать и выводить сумму, всех введенных в строку чисел.
Проблема с выводом, вместо того, чтобы выводить сумму значений введеных чисел, программа выводит сумму коддов клавиш этих же чисел. Сумму кодов клавиш соответствует сумме самих чисел.
Просьба, объяснить почему так выходит и как пофиксить вывод.
#include <iostream>
#include <sstream>
using namespace std;
int Quan(string numb)
{
return numb.length();
}
int Sum(string numb)
{
int s = Quan(numb);
int su = 0;
for (int i = 0; i < s; i++)
{
su += numb[i];
}
return su;
}
int main()
{
setlocale(LC_ALL, "Rus");
string numb;
cin >> numb;
cout << Sum(numb);
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
У вас ни о какой сумме чисел в строке речь идти не может, потому что вы читаете в numb не строку, а слово - одно число. Так что можете просто написать
int numb;
cin >> numb;
cout << numb;
или
string numb;
cin >> numb;
cout << stoi(numb);
Чтобы делать то, что вы хотите -
string numb;
getline(cin,numb);
istringstream ss(numb);
int n,sum = 0;
while(ss >> n) sum += n;
cout << sum;