Форум программистов, компьютерный форум CyberForum.ru

Сумма числе в файле - C++

Восстановить пароль Регистрация
 
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
08.02.2012, 18:29     Сумма числе в файле #1
Не могу понять ваше как это выполнить может есть какая это функция.
Вот сама задача:
Есть файл с названием Date.txt, надо открыть файл и сложить все цифры в нем?
Как это можно сделать, я знаю как открыть файл, но не могу понять как распознать цифры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
08.02.2012, 18:41     Сумма числе в файле #2
C
1
fscanf(pFile, "%d", &val);
Добавлено через 1 минуту
Цитата Сообщение от Sylar9 Посмотреть сообщение
цифры
тогда так
C
1
2
3
if ( fscanf(pFile, "%с", &с) == 1 )
   if ( isdigit(c) )
      с -= '0';
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
08.02.2012, 18:44  [ТС]     Сумма числе в файле #3
Цитата Сообщение от go Посмотреть сообщение
C
1
fscanf(pFile, "%d", &val);
Добавлено через 1 минуту

тогда так
C
1
2
3
if ( fscanf(pFile, "%с", &с) == 1 )
   if ( isdigit(c) )
      с -= '0';
мне надо на С++
использованием ifstream
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
08.02.2012, 20:17     Сумма числе в файле #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <numeric>
#include <iterator>
#include <fstream>
#include <cctype>
 
int main()
{
    std::ifstream ifs("1.txt");
    if(ifs)
    {
        std::cout << std::accumulate(std::istreambuf_iterator<char>(ifs), std::istreambuf_iterator<char>(), 0,
                                     [](std::size_t sum, char c){return std::isdigit(c) ? sum + c - '0' : sum;}
                                     );
    }
    else std::cerr << "Can't open file\n";
    ifs.close();
    return 0;
}
Том Ардер
Модератор
 Аватар для Том Ардер
3617 / 2236 / 271
Регистрация: 15.06.2009
Сообщений: 3,916
08.02.2012, 20:30     Сумма числе в файле #5
Цитата Сообщение от Sylar9 Посмотреть сообщение
Сумма числе в файле
Цитата Сообщение от Sylar9 Посмотреть сообщение
открыть файл и сложить все цифры в нем
Так числа или цифры? Это разные вещи, и путать их, как это делает "широкая публика" и пресса, здесь не рекомендуется.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
08.02.2012, 22:37  [ТС]     Сумма числе в файле #6
Цитата Сообщение от igorrr37 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <numeric>
#include <iterator>
#include <fstream>
#include <cctype>
 
int main()
{
    std::ifstream ifs("1.txt");
    if(ifs)
    {
        std::cout << std::accumulate(std::istreambuf_iterator<char>(ifs), std::istreambuf_iterator<char>(), 0,
                                     [](std::size_t sum, char c){return std::isdigit(c) ? sum + c - '0' : sum;}
                                     );
    }
    else std::cerr << "Can't open file\n";
    ifs.close();
    return 0;
}
А можешь про комментировать строчку td::accumulate(std::istreambuf_iterator<char>(ifs), std::istreambuf_iterator<char>(), 0,
[](std::size_t sum, char c){return std::isdigit(c)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2012, 23:54     Сумма числе в файле
Еще ссылки по теме:

C++ Написать функцию для определения наличия в файле чисел, у которых сумма цифр целой и дробной части равны
Сравнение слов в одном файле со словами в другом файле C++
Поиск положительных среднеарифметических числе в файле C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
remarkes
300 / 223 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
08.02.2012, 23:54     Сумма числе в файле #7
C
1
2
3
4
5
int x=0; // сумма цифр из текста
int c; // переменная для чтения файла
while ( (c=fgetc(fp)) != EOF ) // читаешь файл функцией 
    if ( isdigit(c) != 0 )  // isdigit - возвращает не-нуль, если цифра 
        x+=atoi(c); // atoi - возвращает число
Yandex
Объявления
08.02.2012, 23:54     Сумма числе в файле
Ответ Создать тему
Опции темы

Текущее время: 13:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru