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

Сумма 3 чисел с файла, не могу понять - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти площадь шестиугольника http://www.cyberforum.ru/cpp-beginners/thread668838.html
Есть задача: Найти площадь шестиугольника, стороны которого равны a, b, c, d, е, f и диагонали, которые разбивают шестиугольник на четыре треугольника, равны 4, 4.5, 6. И у меня такой вопрос, как сделать так чтобы вывело или S или "Введенные неверные стороны", а не -1. # IND? Вот сама программа: #include <iostream> #include <math.h> #include <conio.h> using namespace std; float...
C++ Нахождение слова в строке в 1 файле и копирование строки в другой файл Задача: Ввести в файл INPUT.DAT инфу о людях. Затем найти по фамилии этого человека и скопировать все информацию в файл OUTPUT.DAT Ошибка заключается в функции output_file_man_yo, программа копирует только строку с первой фамилией, а на последующие введенные не реагирует. Пожалуйста укажите на ошибку. #include<iostream.h> #include<conio.h> #include<string.h> #include<fstream.h>... http://www.cyberforum.ru/cpp-beginners/thread668832.html
Длина строки в векторе C++
Здравствуйте! Как узнать длину строки в векторе? vector<string> v; v.push_back("a"); v.push_back("aa"); v.push_back("aaa"); vector<string>::iterator i; for(i = v.begin(); i != v.end(); ++i)
C++ принцип подстановки
надо описать 3 объекта используя принци подстановки, код я написал, но компилятор ругается, помогите найти ошибку. #include <iostream> using namespace std; class A { public: A() {a = 0; cout « "A a =" « a « endl;} virtual ~A() { cout « "~A" « endl;} virtual int Ma() {return a;}
C++ Ошибки при попытке прочитать в указанном месте http://www.cyberforum.ru/cpp-beginners/thread668793.html
#include <iostream> #include <iomanip> #include <locale> using namespace std; struct stack { char c; struct stack *next; };
C++ 15. В файле записаны числа. Создать новый файл, содержащий длины всех убывающих последовательностей #include <iostream> #include <stdio.h> #include <conio.h> using namespace std; int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); подробнее

Показать сообщение отдельно
igorrr37
1636 / 1264 / 129
Регистрация: 21.12.2010
Сообщений: 1,925
Записей в блоге: 7
11.10.2012, 23:36     Сумма 3 чисел с файла, не могу понять
Сделал через std::list, на массивах должно быть ещё сложнее
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <fstream>
#include <list>
#include <numeric>
#include <iterator>
#include <cctype>
#include <stdexcept>
 
int main()
{
    try
    {
        std::ifstream ifs("in.txt");
        if(ifs.is_open())
        {
            size_t n, maxi, i, j, k;
            ifs >> n;
            size_t const size = 3;
            std::list<double> l; // список чисел
            std::list<char> lc; // список букв
            double max, tmp, maxnum;
            for(k = 0; k < n; ++k)
            {
                for(i = 0; i < size && ifs >> tmp && tmp; ++i) // заполнение первыми size числами
                {
                    l.push_back(tmp);
                }
                if(l.size() == size)
                {
                    max = std::accumulate(l.begin(), l.end(), 0.0); // установка начального значения
                    maxi = 0; // начальный индекс
                    for(; ifs >> tmp && tmp; ++i) // поиск максимума в группе
                    {
                        l.push_back(tmp);
                        l.pop_front();
                        tmp = std::accumulate(l.begin(), l.end(), 0.0);
                        if(tmp > max)
                        {
                            max = tmp;
                            maxi = i - 2;
                            maxnum = *l.begin();
                        }
                    }
                }
                else throw std::runtime_error("l.size() != size");
                char c;
                for(j = 0; j < i && ifs >> c && isalpha(c); ++j) // заполнение списка букв
                {
                    lc.push_back(c);
                }
                if(i == j) // если список букв и список чисел равны по размеру
                {
                    std::list<char>::const_iterator it(lc.begin());
                    std::advance(it, maxi);
                    std::cout << "Group " << k << ": ";
                    for(i = 0; i < size; ++i)
                    {
                        std::cout << *it++ << ' ';
                    }
                    std::cout << std::endl;
                }
                else throw std::runtime_error("mismatch number of doubles and letters");
                l.clear();
                lc.clear();
            }
            ifs.close();
        }
        else std::cerr << "Unable to open input file" << std::endl;
    }
    catch(std::exception const& e)
    {
        std::cerr << "Exception: " << e.what() << std::endl;
    }
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru