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

Поиск максимальной компоненты файла - C++

Восстановить пароль Регистрация
 
UTM
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 17
26.04.2014, 00:21     Поиск максимальной компоненты файла #1
Написал программу, с помощью которой записываются данные в файл, а за тем производится поиск максимального числа. Вот код, он полностью рабочий:
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
#include "stdafx.h"
#include "iostream"
#include <fstream>
#include "conio.h"
 
using namespace std;
 
class Bob
    {
        public:
        void Ted()
        {
            int n, m[100];
            cout<<"Введите количество чисел: ";
            cin>>n;
        FILE * f=fopen("D:\\Numbers.txt","wt");
            if (f)
                {
                    for (int i=0; i<n; i++)
                    {
                        cout<<"\n Введите "<<i+1<<"-е целое число: ";
                        cin>>m[i];
                        fprintf(f, "%d ", m[i]); 
                        
                    }
 
                    fclose(f);
                }
            else
                cout<<"Ошибка";
        }
        
 
    };
int main()
{
    setlocale(LC_ALL,"rus");
    Bob Fred;
    int v, max=0;
    cout<<"\n Для создания файла-нажмите 1. \n Для использования существующего файла нажмите 2. \n Для выхода из программы нажмите 3 \n";
    char n;
    n=getch();
    switch (n)
    {
        case '3':
        return 0; 
        break;
    case '1':
    Fred.Ted();
    cout<<endl;
    case '2':
    ifstream Numbers("D:\\Numbers.txt", ifstream::in);
    if (!Numbers)
        {
            cout<<"Файл не существует :( \n";
            cin.ignore();
            return 1;
        }
    
        while (!Numbers.eof())
            {
                 Numbers >> v;
                 if (v>max)
                     max=v;
            } 
         break;
    }
    cout<<"Максимум: "<<max<<endl;
    cin.ignore();
    cin.get();                  
    return 0;
}
Но преподаватель захотела, чтобы поиск максимального числа тоже был реализован в функции. И тут какая-то проблема вышла. Как я понял файловый поток не открывается и из-за этого выводится max=0. Подскажите, пожалуйста, в чем проблема.
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
#include "stdafx.h"
#include "iostream"
#include <fstream>
#include "conio.h"
 
using namespace std;
 
class Bob
{
    public: int v, max, n, m[100];
            void Ted();
            void Tom();
            void maxi();
};
void Bob::Ted()
{
            cout<<"Введите количество чисел: ";
            cin>>n;
        FILE * f=fopen("D:\\Numbers.txt","wt");
            if (f)
                {
                    for (int i=0; i<n; i++)
                    {
                        cout<<"\n Введите "<<i+1<<"-е целое число: ";
                        cin>>m[i];
                        fprintf(f, "%d ", m[i]); 
                        
                    }
 
                    fclose(f);
                }
            else
                cout<<"Ошибка";
};
void Bob::Tom()
{
    int max=0, e[100];
            ifstream Numbers("D:\\Numbers.txt", ifstream::in);
            if (!Numbers)
        {
            cout<<"Файл не существует :( \n";
            cin.ignore();
        while (!Numbers.eof())
            {
                 Numbers >> v;
                 if (v>max)
                     max=v; 
            }
        }
     cout<<max<<endl;
};
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"rus");
    Bob Fred;
    cout<<"\n Для создания файла-нажмите 1. \n Для использования существующего файла нажмите 2. \n Для выхода из программы нажмите 3 \n";
    char n;
    n=getch();
    switch (n)
    {
        case '3':
        return 0; 
        break;
    case '1':
        Fred.Ted();
    cout<<endl;
    case '2':
        Fred.Tom();
        break;
    }
    cin.ignore();
    cin.get();                  
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2014, 00:21     Поиск максимальной компоненты файла
Посмотрите здесь:

C++ В заданном массиве Х(N) замените нулями все отрицательные компоненты, непосредственно предшествующие его максимальной компоненте (первой по порядку, если их несколько)
Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов C++
Сложная обработка элементов файлов. Найти сумму положительных компонент файла, расположенных до максимальной компоненты... C++
Поиск последовательности элементов максимальной длины в массиве C++
C++ Компоненты бинарного файла – целые числа
Компоненты заданного бинарного файла – массивы C++
C++ Поиск слово с максимальной длиной которое начинается на определенную букву
C++ Оптимальный буфер при считывании файла для максимальной производительности
C++ Разница первой и последней компоненты файла
Файл: Найдите номер первой положительной компоненты файла и номер последней положительной компоненты файла C++
C++ Заполнить квадратную матрицу данными из файла и найти столбец с максимальной суммой элементов
C++ Поиск максимальной по длине монотонно неубывающей подпоследовательности вещественных чисел

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.04.2014, 00:31     Поиск максимальной компоненты файла #2
Цитата Сообщение от UTM Посмотреть сообщение
Как я понял файловый поток не открывается
Если не открывается, то сообщение выводится. Или нет? И зачем смешивать С и С++?
UTM
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 17
26.04.2014, 00:35  [ТС]     Поиск максимальной компоненты файла #3
Я имел ввиду, что открытие файлового потока просто игнорируется программой. Никаких ошибок не выводит.
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.04.2014, 00:36     Поиск максимальной компоненты файла #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void Bob::Tom()
{
    int max=0, e[100];
    ifstream Numbers("D:\\Numbers.txt", ifstream::in);
    if (!Numbers)
        cout<<"Файл не существует :( \n";
    else
    {
        //cin.ignore(); // Зачем здесь это?
        while (!Numbers.eof())
        {
                Numbers >> v;
                if (v > max)
                    max = v; 
        }
        cout<<max<<endl;
    }
};
UTM
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 17
26.04.2014, 00:45  [ТС]     Поиск максимальной компоненты файла #5
Забыл удалить, но эта строчка ни на что не влияет

Добавлено через 3 минуты
Я нашел ошибку
Yandex
Объявления
26.04.2014, 00:45     Поиск максимальной компоненты файла
Ответ Создать тему
Опции темы

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