Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 05.02.2016
Сообщений: 66
1

В считывание с файла возникает ошибка

02.10.2016, 18:19. Показов 503. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Так случилось, что я сменил версию visual studio и работающая программа перестала нормально работать (возникает точка остановки).
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include "stdafx.h" 
#include <iostream> 
#include <conio.h> 
#include <time.h> 
#include <cmath> 
#include <fstream> 
#include <algorithm> 
using namespace std;
void proverka(int &a)
{
    do {
        cin >> a;
        if (a <= 0 || a >= 20)
            cout << "Ошибка\n";
    } while ((a <= 0) || (a >= 20));
}
 
void zapolnenie(float *mas, int &n)
{
    ifstream fail("C:\\Users\\kuhti\\Desktop\\Информатика\\file.txt");
    for (int i = 0; fail.peek() >= 0 && !fail.eof(); i++)
    {
        fail >> mas[i];
    }
    fail.close();
    
    for (int i=0;i<n;i++)
    {
        cout << i << ". " << mas[i] << endl;
    }
}
void proverka1(int &a, int &b)
{
    do {
        cin >> a;
        if (a<0 || a >= b)
            cout << "Ошибка\n";
    } while ((a < 0) || (a >= b));
}
int main()
{
    setlocale(LC_CTYPE, "Rus");
    int x;
    cout << "Введите число элементов массива вещественных чисел:\n";
    proverka(x);
    float *N = new float[x];
    cout << "Исходный массив:\n";
    zapolnenie(N, x);
    cout << endl;
    int A, B;
    cout << "Введите число A:\n";
    proverka1(A, x);
    cout << "Введите число B:\n";
    proverka1(B, x);
    cout << endl;
    int C;
    if (A == B)
    {
        C = 0;
    }
    else C = (abs(A - B) - 1);
    cout << "Количество элементов массива, лежащих в диапазоне от А до В:\n"<< C << endl << endl;
    float max = N[0];
    int ElMax = 0;
    for (int i = 0; i < x; i++)
    {
        if (N[i] > max) {
            max = N[i];
            ElMax = i;
        }
    }
    cout << "Максимальный элемент массива:\n" << ElMax << ". " << max << endl << endl;
    int tr = ElMax + 1;
    float sum = 0;
    for (int i = tr; i < x; i++)
    {
        sum += N[i];
    }
    cout << "Сумма элементов массива после максимального:\n" << sum << endl << endl;
    for (int j = 0; j < x; j++)
    {
        for (int i = 0; i < x - 1; i++)
        {
            if (abs(N[i]) < abs(N[i + 1]))
                swap(N[i], N[i + 1]);
        }
    }
    cout << "Массив после упорядочивания его элементов убыванию модулей" << endl;
    for (int i = 0; i < x; i++)
    {
        cout << i << ". " << N[i] << endl;
    }
    _getch();
    return 0;
}
В файле, указанном в коде программы 19 элементов. При вводе в массив размерности менее 19 возникает точка останова, а при вводе 19 - работает.
Как можно исправить эту ошибку, чтоб возможно было оставить массив динамическим?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2016, 18:19
Ответы с готовыми решениями:

Возникает ошибка при запуске файла после компиляции
После компиляции моего приложения, а я его писал на XP, я перекинул его на Windiw7 и после запуска...

При закачивании файла на сервер возникает ошибка 404
При попытке закачать файл на сервер возникает ошибка 404. Папка Errors с правами 777. Что...

При попытке чтения ini файла возникает ошибка
При выполнении программы возникает ошибка, как ее исправить? #include &lt;windows.h&gt; void...

При выгрузке библиотеки(ДЛЛ) возникает возникает ошибка
Здравствуйте!! Ребята, подскажите, по такому вопросу написал код создания кнопки на форме при...

1
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
02.10.2016, 20:31 2
C++
1
2
3
4
5
6
7
8
9
10
11
void zapolnenie(float *mas, int &n)
{
    ifstream fail("C:\\Users\\kuhti\\Desktop\\Информатика\\file.txt");
    for (int i = 0; i < n && (fail >> mas[i]); ++i);
    fail.close();
    
    for (int i=0;i<n;i++)
    {
        cout << i << ". " << mas[i] << endl;
    }
}
1
02.10.2016, 20:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2016, 20:31
Помогаю со студенческими работами здесь

При удалении файла возникает ошибка об отсутствии части пути
Вот кода для удаления файлов (и хотелось бы чтобы мог удалять и папки), но при выполнении действия...

из поля Edit получить имя для нового файла. Возникает ошибка
Здравствуйте. Хочу написать программу &quot;блокнот с заметками&quot;. при редактировании поля Memo, его...

При записи файла на флешку возникает ошибка превышен таймаут семафора
Помогите решить такую проблему. При записи файла на флешку возникает ошибка превышен таймаут...

Дозапись в файл осуществляется, но возникает ошибка при создании этого файла
Доброго времени суток. В начале программы делаю следующее public static void...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru