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

Некорректный вывод в файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, представляют ли элементы введенного с клавиатуры массива убывающую последовательность http://www.cyberforum.ru/cpp-beginners/thread1131357.html
Написать программу, которая проверяет, представляют ли элементы введенного с клавиатуры массива убывающую последовательность.
C++ Решение уравнения Помогите перевести уравнение ни сишечку задача такая 1. Создать консольный проект. 2. Написать программу вычислений в соответствии с заданным вариантом. Числовые параметры задаются самостоятельно (вводятся с клавиатуры), а результат вычислений вывести на экран. Само уравнение в вложенной картинке http://www.cyberforum.ru/cpp-beginners/thread1131347.html
C++ Найти один минимальный элемент в нулевом столбце матрицы и поменять местами с заданным элементом
Дана матрица А(nxm) , n>m заполненная случайными целыми числами. Выполнить следующие операции на матрицей А: 1) найти один минимальный элемент в нулевом столбце матрицы и поменять местами с элементом А(0)(0),найти два минимальных элемента в первом столбце матрицы и поменять их местами с элементами А(0)(1) и А(1)(1) соответственно. найти m минимальных элементов в (m-1) - ом столбце матрицы и...
Значение якобы возвращённое функцией при опущенном return C++
Что считается значением, возвращённым функцией, в которой опущен оператор `return`? Зачем компилятор позволяет не указывать `return` в не-void функциях? Допустим, есть такой метод класса: ... int Arr::getElement(unsigned i){ if (i >= _noe) { //_noe - кол-во элементов массива printf("\t ERROR: Trying to access NONexistent element (current noe=%u). \n", _noe); //тут мог бы...
C++ Разница в использовании конструкторов http://www.cyberforum.ru/cpp-beginners/thread1131338.html
Привет всем) У меня вопрос. Относительно недавно начал изучать ООП на С++ и для меня непонятна разница между такими конструкторами: №1 Point::Point(int _x, int _y) : x(_x), y(_y) {} №2 Point::Point(int _x, int _y) { x = _x;
C++ Медленная реакция программы на нажатие клавиши в игре Здравствуйте! В общем пишу небольшую игру где надо перемещаться по горизонтали главным героем. Игра предполагает быстрое перемещение туда-сюда этим главным героем и есть проблема. Если начать идти вправо и резко изменить направление движения влево, то будет задержка (довольно таки долгая). Использую kbhit() и getch(), выкладываю упрощенный код, подскажите пожалуйста что делать. На всякий случай... подробнее

Показать сообщение отдельно
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 401
27.03.2014, 16:58     Некорректный вывод в файл
Здравствуйте. Компилятор находит ошибку, что-то с вводом выводом

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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
#include <cmath>
#include <cstdlib>
 
using namespace std;
 
double determ(int** Arr, int size);    //прототип функции поиска определителя
ifstream fp ("C:\\100VIDEO\\123.txt");
ifstream in ("C:\\123.txt");
int main()
{
    setlocale(0,"");
    int size=3;     //константа размера массива
    int **Arr;      //указатель обьявляется, для использования динамического массива
  Arr=new int*[size];     //создание динамического массива
            for(int i=0;i<size;++i)     
            Arr[i]=new int[size]; 
    int H;
    while(1>0)
{
    cout<<"Нажмите 1, если вы хотите ввести другую размерность матрицы(стандартный размер=3)"<<endl;
    cout<<"Нажмите 2, если вы хотите ввести матрицу c клавиатуры"<<endl;
    cout<<"Нажмите 3, если вы хотите ввести матрицу из файла"<<endl;
    cout<<"Нажмите 4, если вы хотите сохранить матрицу в файл"<<endl;
    cout<<"Нажмите 5, если вы хотите вывести матрицу"<<endl;
    cout<<"Нажмите 6, если вы хотите вычислить и вывести на экран дискриминант"<<endl;
    cout<<"Нажмите 7, если вы хотите вычислить дискриминант и сохранить его в файл"<<endl;
    cout<<"Нажмите 8, если вы хотите очистить экран"<<endl;
    cout<<"Нажмите 9, если вы хотите получить справку по программе"<<endl;
    cout<<"нажмите 0, если вы хотите выйти"<<endl;
    cin>>H;
     switch (H)
    {
       case 0:
           cout<<"Выходим из программы!";
           goto Exit;
       break;
       case 1: cout<<"Размерность= ";
        cin>>size;
        if (size<0 || size>15) cout<<"Введёна неверная размерность матрицы! "<<endl;
        else cout<<"размерность:= "<<size<<endl;
 
       break;
       case 2: cout<<"Введите матрицу!"<<endl;
            for(int i=0;i<size;++i)
            for(int j=0;j<size;++j)
            cin>>Arr[i][j];        //эта и 2 строки выше - заполнение массива с клавиатуры
       break;
 
       case 3: 
            if ( ! fp ) {
            cout << "ошибка: не могу открыть входной файл " << endl;
            system("pause");
            exit(0);
            }
            for(int i=0;i<size;++i)
            for(int j=0;j<size;++j)
            {
            fp >>Arr[i][j];
            }
            fp.close();
            cout << "Загрузка завершена!" << endl;
       break;
       
       case 4: 
            if ( ! fp ) {
            cout << "Ошибка: не могу открыть входной файл"<<endl;
            system("pause");
            exit(0);
            }
            for(int i=0;i<size;++i)
            for(int j=0;j<size;++j)
            {
            fp>>Arr[i][j];
            }
            fp.close();
            cout << "Сохранение завершено!" << endl;
       break;
 
       case 5:
       cout<<"Вывод матрицы!"<<endl;
       for(int i=0;i<size;++i)
        {
        for(int j=0;j<size;++j)
        cout<<Arr[i][j]<<' ';               // вывод массива на экран в "правильной" форме
        cout<<endl;
        }
       break;
 
       case 6:
       cout<<"Вычисление определителя!"<<endl;
       cout<< determ(Arr, size)<<endl;        //выводит на экран результат подсчета функции поиска определителя determ(Arr- сюда передаем массив, size- сюда размер массива)
       break;
 
       case 7:
       if (!fp) {
            cout << "Ошибка: не могу открыть входной файл"<<endl;
            system("pause");
            exit(0);
            }
            fp>>determ(Arr, size);
            fp.close();
            cout << "Сохранение завершено!" << endl;
       break;
      
       case 8:
       system("cls");
       break;
 
       case 9:
       cout<<"Справка по программе"<<endl;
       cout<<"Краткая характеристика численного метода - определитель вычисляется по теореме Лапласа"<<endl;
       cout<<"результаты тестирования программы - программа вычисляет результат со 100% точностью"<<endl;
       cout<<"Требования к аппаратной части - клавиатура, дисплей, персональная ЭВМ"<<endl;
       cout<<"Автор - студент 1 курса группы АСОИР-131"<<endl;
       break;
    }
}
 Exit:
    for(int i=0;i<size;++i)     // удаляем сначала содержимое массива
    delete[] Arr[i];
    delete[] Arr;               //потом сам массив
return 0;
}
double determ(int** Arr, int size)         //функция поиска определителя
{
    int i,j;
    double det=0;       //переменная определителя
    int **matr;         //указатель
        if(size==1)     // 1-е условие , размер 1
        {
        det=Arr[0][0];
        }
            else if(size==2)    // 2-е условие , размер 2
            {
            det=Arr[0][0]*Arr[1][1]-Arr[0][1]*Arr[1][0];    
            }
    else
    {
    matr=new int*[size-1]; //создание динамического массива
    for(i=0;i<size;++i)
        {
        for(j=0;j<size-1;++j)     
        {
        if(j<i)
          {
            matr[j]=Arr[j];
                   }
        else
            matr[j]=Arr[j+1];
               }
    det+=pow(-1., (i+j))*determ(matr, size-1)*Arr[i][size-1];    //подсчеты
          }
    delete[] matr;  //удаляем массив
    }
    return det; //возвращаем значение определителя
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru