Другие языки программирования и технологии

Как при считывании с файла даних, можно было бы вернуться на символ назад. тоесть один и тотже символ считать два раза

ifstream file3("text.txt");
while(! file3.eof())
{
file3 >> A;
if(A>=48 && A<=57)
{
unget();
file3 >> numb;
sum+=numb;
}
}

нужно подсчитать суму всех цифер в файле
A Ф
56
>unget(); не работает
Конечно, не работает. Если ты выйдешь на улицу и крикнешь "стой", тоже вряд ли кто-то остановится, если не обратишься к кому-то конкретному:
file3.unget();
Владимир Кабанов
Владимир Кабанов
77 962
Лучший ответ
ifstream::putback(char c)
ifstream::unget()

Например:
file3.putback(A);

> нужно подсчитать суму всех цифр в файле
для этого такие функции не требуются:

#include <iostream>
#include <fstream>
#include <cctype>

using namespace std;

int main() {
    ifstream in("in.txt");
    int s = 0;
    char c;
    while (in >> c) if ( isdigit(c) ) s += c - '0';
    cout << s << endl;
    return 0;
}

с помощью unget можно подсчитать сумму чисел в файле с произвольным текстом:

#include <iostream>
#include <fstream>
#include <cctype>

using namespace std;

int main() {
    ifstream in("in.txt");
    int s = 0, n;
    char c;
    while (in >> c) {
        if ( isdigit(c) ) {
            in.unget();
            in >> n;
            s += n;
        }
    }
    cout << s << endl;
    return 0;
}

Если в файле только числа, то достаточно опять простой программы:

#include <iostream>
#include <fstream>

using namespace std;

int main() {
    ifstream in("in.txt");
    int s = 0, n;
    while (in >> n) s += n;
    cout << s << endl;
    return 0;
}
ну в питоне return 2 для функции.. . а в этой вашей жути извините не знаю=) но все равно.. . похожим методом
Нурлан Калиев
Нурлан Калиев
2 408