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

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

Войти
Регистрация
Восстановить пароль
 
большой
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 15
#1

нет информации в выходном файле - C++

14.06.2013, 00:51. Просмотров 255. Ответов 0
Метки нет (Все метки)

Здравствуйте.По заданию (Дан массив размера N. Определить количество его промежутков монотонности (то есть участков, на которых его элементы возрастают или убывают)) написал код.Сначала надо было вводить данные с клавиатуры , а после переделки кода считывать из файла. Но при запуске выдает сообщение ,что введено не число.Выходной файл создается но пустой. Не могу найти ошибку в коде. Складывается впечатление ,что программа не может считать данные с файла , ибо из за ошибке в коде не видит данный файл и поэтому пишет такое сообщение.
Заранее спасибо.
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
#include <iostream>
#include <fstream>
#include <cstring>
 
int main()
 
{
    setlocale (0, "");
 
    int N ; // размерность массива
    std::ifstream input("input.txt"); // открытие файла для чтения данных
    std::ofstream output("output.txt"); // открытие файла для чтения данных
    input >> N; //чтение из файла размерности массива
    // проверка, можем ли мы проверить данный массив на промежутки монотонности или же он слишком мал
    if (N<=1)
    {
        std::cout<<"маленький массив.промежутки не сосчитать"<<std::endl;
        system ("pause");
    }
    else
    {
        int* array = new int[N];// отводим память под N элементов
        
        // после необходимых проверок, начинаем ввод массива с заданными параметра-ми с клавиатуры
           for (int i=0;i<N;++i)
           {
               input >> array[i];
               if (input.fail()) // проверяем, число ли содержится в файле
               {
                   std::cout<<"введено не число"<<std::endl;
                   system ("pause");
                   
               }
           }
           input.close(); // закрытие файла
           int intervals=1;  // переменная в которой будет храниться количество промежутков монотонности
           int rise=(array[1]>array[0])?1:0; // функция определяющая количество промежутков возрастания
           for (int i=1;i<N-1;++i)
               if (rise)
               {
                   if (array[i+1]<array[i])
                   {
                       rise=rise^1;
                       intervals++;
                   }
               }
               else
               {
                   if (array[i+1]>array[1])
                   {
                       rise=rise^1;
                       intervals++;
                   }
               }
               output<<"промежутков:"<<intervals<<std::endl; // выводим количество промежутков монотонности
               // и выводим заполненный массив.
               output<<"вот ваш массив:";
               for (int i=0;i<N;++i)
               {
                   output<<array[i]<<";";
               }
   output.close();
               return 0;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 00:51     нет информации в выходном файле
Посмотрите здесь:
C++ В выходном файле заменить все маленькие буквы на большие
C++ Вывод информации о файле
Получение информации о файле C++
Изменение информации в текстовом файле C++
C++ Поиск информации в файле и ее вывод
C++ Изъятие информации в файле из скобок
C++ Перезапись части информации в файле
Перемещение информации в файле в произвольное место C++
C++ Сохранение информации в самом исполняемом файле
Вывод всей информации о выбранном файле C++
Создание класса Студент, сохранение информации в файле C++
Теория о входном и выходном потоке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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