Работа С Файлами

Тема в разделе "C/C++/C#", создана пользователем vladis222, 28 окт 2014.

  1. vladis222

    vladis222 Active Member

    Регистрация:
    6 дек 2011
    Сообщения:
    31
    Симпатии:
    0
    Дан файл, компонентами которого являются целые числа. Найти сумму и произведение компонент заданного файла,вывести на экран последнюю и предпоследнюю компоненты этого файла, помогите пожалуйста, я не представляю как это написать на С/С++?
     
  2. Evgeniy

    Evgeniy Member

    Регистрация:
    23 авг 2014
    Сообщения:
    16
    Симпатии:
    0
    Написать это весьма просто, собственно похожий пример был в этой теме.
    Создаем объект класса ifstream и привязываем его к нашему файлу.
    Если количество элементов в файле известно заранее, то все еще проще: переменная - счетчик, которая будет считать количество итераций цикла и в нужное время считывать и выводить последний и предпоследний элемент файла.
    Сумма аналогична простому подсчету суммы всех элементов массива. Единственное отличие, что значение нужно брать из файла. Тоже самое и с произведением.

    В общем, посмотрите тему, что я вам скинул и попробуйте написать свой код. Если не выйдет отпишитесь в этом же топике и тогда можно будет вам помочь. Иначе это называется сделайте за меня, а не помогите.
     
  3. vladis222

    vladis222 Active Member

    Регистрация:
    6 дек 2011
    Сообщения:
    31
    Симпатии:
    0
    Код (C++):
    #include<iostream>
    using namespace std;
    #include<conio.h>
    #include<stdlib.h>
    #include<fstream>
    const int N=30;
    int main()
    {
    setlocale(LC_ALL,"Rus");
    int sum=0;int pr=1;int a;int col=0;
    fstream input ("my.txt");
    input.open("D:\my.txt");//Путь к файлу
    if (!input) {cout << "Файл не открыт.\n"; }
    else
    if(input)
    {
    while (!input.eof())
    {
    input>>a;
    sum=sum+a;//Вычисление суммы компонентов файла
    pr=pr*a;//Вычисление произведения компонентов файла
    col=col+1;
    }
    cout<<sum<<endl;//Вывод суммы
    cout<<pr<<endl;//Вывод произведения
    }

    Вот написал часть кода, вообщем в а считывается инфа из файла,подсчитывается сумма и произведение компонента,а вот с нахождением последней и предпоследней возникли трудности,не знаю как это реализовать
     
  4. Evgeniy

    Evgeniy Member

    Регистрация:
    23 авг 2014
    Сообщения:
    16
    Симпатии:
    0
    Я это сделал так.
    Код (C++):
    #include <iostream>
    #include <fstream>

    using std::cout;
    using std::endl;
    using std::ifstream;

    //const int N=30;

    void main()
    {
    setlocale(LC_ALL,"Rus");

    int sum = 0;
    unsigned int pr = 1;
    int a;
    int col = 0, col1 = 0;
    int last_elem = 0;
    int penultimate_elem = 0;

    ifstream input("my.txt"); //Мой файл лежит в директории проекта
    //input.open("D:\my.txt");//Путь к файлу <--- Это здесь не нужно. Было бы логичней его впихнуть в блок проверки открытия файла и если не открылся - открыть этим методом
    if (!input)
    {
    cout << "Файл не открыт.\n";
    }

    if(input)
    {
    while(!input.eof()) //Узнаем количество элементов файла
    {
    input >> a;
    col++; //Инкрементируем счетчик. Аналогично записи col = col+1
    }
    input.seekg(0); // Переводим указатель на начало файла
    while (!input.eof())
    {
    input >> a;
    sum += a; //Вычисление суммы компонентов файла
    pr *= a; //Вычисление произведения компонентов файла
    col1++; //Инкрементируем счетчик элементов нашего файла
    if(col1 == col - 1) //Предпоследний
    penultimate_elem = a;
    if(col1 == col) //Когда последний элемент
    last_elem = a;
    }

    cout << "Cумма: " << sum << endl;//Вывод суммы
    cout << "Произведение: " << pr << endl;//Вывод произведения
    cout << "Предпоследний элемент: " << penultimate_elem << endl; //Предпоследний
    cout << "Последний элемент: " << last_elem << endl; // Последний
    }
    std::cin.get(); //Задержка экрана
    }
    Мой файл был заполнен значениями: 12 22 33 66 5 55 4 6
    Для чего вот это //const int N=30; ? Количество элементов файла не фиксировано, нигде в коде не используется, забыли с прошлых попыток удалить?)
     
Загрузка...
Похожие Темы - Работа Файлами
  1. gx6060
    Ответов:
    2
    Просмотров:
    421
  2. seoman2
    Ответов:
    21
    Просмотров:
    766
  3. NickProstoNick
    Ответов:
    22
    Просмотров:
    1.523
  4. Lyuska
    Ответов:
    1
    Просмотров:
    1.171
  5. milaa
    Ответов:
    1
    Просмотров:
    958

Поделиться этой страницей