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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 77, средняя оценка - 4.61
Rilanor
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 5
#1

Считать числа из файла - C++

04.03.2012, 01:30. Просмотров 11905. Ответов 4
Метки нет (Все метки)

Приветствую всех.

Необходимо написать программу на С по следующему заданию: "Создайте программу, которая по текстовому файлу, каждая строка которого содержит 2 числа: количество купленного товара и стоимость единицы данного товара, определяет суммарную стоимость всех купленных товаров и среднюю стоимость единицы товара из всех купленных товаров."

Написал код для вывода содержимого файла на экран, и составил алгоритм для решения уже, собственно, задания, но никак не могу перевести его в код.

Вот алгоритм, по которому я пытался провернуть сие начинание:
1)считываю первое слово, конверчу в числовой вид, считываю второе слово, конверчу, умножаю первое на второе, и прибавляю к отдельной переменной summary, которая изначально равна нулю, повторять с каждой строкой, пока не кончится файл, результат вывести на экран.
2) считываю первое слово, отбрасываю его, считываю второе слово, конверчу, прибавляю его к отдельной переменной summary, и увеличиваю счетчик count на единицу, повторить для каждой строки пока не кончится файл, когда кончится, поделить summary на count, вывести результат на экран.
Кто может помочь с прогой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 01:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считать числа из файла (C++):

Из одного файла считать целые числа, в другие файлы записать четные и нечетные числа - C++
Нужно с одного файла считать целые числа и в другие файлы записать четные и нечетные числа. Вот код, но почему-то не работает...и как...

Считать из файла только числа - C++
Сделал класс, который загружает текстовый файл в массив(целочисленный) и имеет функцию удаления числа из файла. #include <iostream> ...

Как считать числа из файла? - C++
Дана последовательность целых чисел x1,x2,...,x20(читаются из файла).Известно,что в ней есть два одинаковых числа. Вывести в другой файл...

Как считать числа из бинарного файла - C++
Стоит задача: записать простые числа в бинарный файл. Числа берутся из промежутка 1...n. Все сделал, но не получается вывести в консоль...

Считать числа из файла и записать их в массив - C++
Проблема следущая: нужна программа которая считывает числа типа double из файла (в моем случае это индексы валютного курса) и записывает их...

Из .txt файла считать числа в массив - C++
Непомерно туплю и мой С++ тупит. Задание простое: 1.txt файл из 500 строк - чисел (те числа разделены символом перевода строки). Надо...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
04.03.2012, 03:47 #2
Добавлено через 20 минут
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream fin("c:\\f.txt");
    int col = 0, col_tmp;
    double sum = 0, sum_tmp;
 
    if (fin.is_open())
    {
        while (fin >> col_tmp && fin >> sum_tmp)
        {
            col += col_tmp;
            sum += sum_tmp*col_tmp;
        }
        cout << "col = " << col << "; sum = " << sum << endl;
        if (col)
                               cout << "average: " << sum/col << endl;
        
    }
    fin.close();      
}
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
04.03.2012, 03:49 #3
Ну раз одно решение есть то пусть будет ещё такое
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
#include <iostream>
#include <fstream>
using namespace std;
 
class Product
{
private:
    double sum;
    int count;
 
public:
    Product():sum(0),count(0){}
 
    void consider(const char* fileName)
    {
        ifstream file(fileName);
        if(!file)
        {
            cerr<<("\nCan't open file ")<<fileName;
            exit(1);
        }
        int a,b;
        while(!file.eof())
        {
            if(!file.good())
            {
                cerr<<endl<<"something wrong with "<<fileName;
                exit (2);
            }
            file>>a>>b;
            sum+=a*b;
            count+=a;
        }
    }
 
    double getSum(){return sum;}
    double averagePrice(){return sum/count;}
};
 
 
int main()
{
    Product pr;
    pr.consider("test.txt");
    cout<<pr.getSum();
 
}
Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
04.03.2012, 04:01 #4
только b лучше объявить как double (см. стр 22)
и count может быть равен нулю
Rilanor
0 / 0 / 0
Регистрация: 04.03.2012
Сообщений: 5
04.03.2012, 13:49  [ТС] #5
Большое спасибо, все работает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2012, 13:49
Привет! Вот еще темы с ответами:

Считать с файла числа через итератор потока - C++
Не хочет считывать с файла целые числа, что я делаю не так? #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iterator&gt; #include...

Ifstream считать из файла числа с плавающей точкой - C++
Здравствуйте форумчане. Поток std::ifstream хорошо считывает целые числа, но когда дело доходит до числе с плавающей точкой он считывает...

Считать из текстового файла целые числа в массив - C++
Помогите есть текстовый файл и массив двумерный , нужно считать числа и текстового файла в массив

Считать из текстового файла числа и вывести их сумму - C++
всем привет! такая задача надо с файла .TXT считать числа и вывести их сумму на екран!? помогите пожайлуста!!! спасибо


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.03.2012, 13:49
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru