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

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

Войти
Регистрация
Восстановить пароль
 
большой
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 15
14.06.2013, 00:51     нет информации в выходном файле #1
Здравствуйте.По заданию (Дан массив размера 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++

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

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

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