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

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

Войти
Регистрация
Восстановить пароль
 
illuminates
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 106
#1

Ошибка вывода данных в файл - C++

24.10.2013, 10:10. Просмотров 460. Ответов 12
Метки нет (Все метки)

Помогите найти ошибку. Есть программа, которая выводит массив f из р=53 строк. В первой колонке х - целые числа от -26 до 26, во второй некоторые данные у(х) (приближенно у(х)-кубическая парабола). В третьей - результат аппроксимации полиномом третьей степени. Создается файл "D:\\new.txt", но в него записывается нечто странное:
-26 2.42703e+200
-6.27744e+066 2.42703e+200
-6.27744e+066 2.42703e+200
...
и так все 53 строки.

Вывод в блокнот:

C++ (Qt)
1
2
3
4
5
  ofstream fout;
  fout.open("D:\\new.txt");
    for(int k=0;k<p;k++)
      fout<<f[k][0]<<"\t"<<f[k][2]<<"\n";
  fout.close();
Остальные фрагменты, где что-либо записывалось в f:
C++ (Qt)
1
2
3
4
5
6
                ifstream in;
        in.open("D:\\FFF.txt");
        for (i=0;i<p;i++)
            for(j=0;j<2;j++)
                in>>f[i][j];
        in.close ();
C++ (Qt)
1
2
3
4
5
6
7
//построение 3-го столбца таблицы f
    for (i=0;i<p;i++)
    {
        f[i][2]=0;
        for(j=0;j<n;j++)
            f[i][2]+=Ak[j]*pow(f[i][0],j);
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 10:10     Ошибка вывода данных в файл
Посмотрите здесь:

Ошибка при перегрузке оператора вывода в файл - C++
Добрый день, есть такой кусок кода: #include &lt;iostream&gt; #include &lt;ostream&gt; using std::ostream; using namespace std; ...

Ошибка вывода данных в массиве строк - C++
Здравствуйте. Есть программа, где создается динамический массив строк, заносится туда информация с клавиатуры и выводится сам массив....

Ошибка в коде с признаками (свойствами) вывода данных - C++
Добрый всем вечер, пытаюсь написать программу которая открывает уже существующий файл с занесенной информацией,выводит ее на экран и дает...

Ошибка при работе с потоками ввода (вывода) в файл (из файла) - C++
Изучаю перегрузку операторов ввода/вывода с файлом и без. Вылетает такая ошибка при отработанном коде: Необработанное исключение по...

Ошибка при записи данных в файл - C++
Для записи перменной типа string выделяю динамически массив из 64 элементов char,после записи данных освобождаю память,но почему-то при...

Ошибка при записи в файл данных из обьекта класса - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; using namespace std; class Vector { public: double x; ...

Написать программу на языке С + + реализующая класс содержащий поля данных и методы ввода и вывода данных - C++
Написать программу на языке С + + реализующая класс содержащий поля данных и методы ввода и вывода данных. это надо сделать в этой...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
calculon
14 / 14 / 3
Регистрация: 18.07.2012
Сообщений: 79
24.10.2013, 10:34     Ошибка вывода данных в файл #2
А вы уверены, что содержимое файла действительно считывается правильно? Да, и неплохо бы взглянуть на фрагмент кода где выделяется память под f.
illuminates
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 106
24.10.2013, 12:04  [ТС]     Ошибка вывода данных в файл #3
Код
//объявление динамического массива p на 3: 1 столбец х, 2 столбец у, 3 столбец для аппроксимации полиномом
		double**f=new double*[p];
		for(i=0; i<p;i++)  
			f[i]=new double[3];
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 13:29     Ошибка вывода данных в файл #4
Цитата Сообщение от illuminates Посмотреть сообщение
второй некоторые данные у(х) (приближенно у(х)-кубическая парабола). В третьей - результат аппроксимации полиномом третьей степени. Создается файл "D:\\new.txt", но в него записывается нечто странное:
-26 2.42703e+200
-6.27744e+066 2.42703e+200
-6.27744e+066 2.42703e+200
Так запись в файле в блокноте выглядит?
illuminates
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 106
24.10.2013, 15:22  [ТС]     Ошибка вывода данных в файл #5
Да, и при выводе на экран через cout то же самое.

Этот вывод неправильно работает и в других моих программах, где я его задействовал. Пытаюсь найти ошибку. Возможно она в самом алгоритме.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 15:29     Ошибка вывода данных в файл #6
in.open("D:\\FFF.txt");
Открытие файла нужно проверить. Или проверяли?
illuminates
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 106
24.10.2013, 16:07  [ТС]     Ошибка вывода данных в файл #7
Всё закомментировал, остались только строчки объявления, ввода и вывода на экран:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//объявление динамического массива p на 3: 1 столбец х, 2 столбец у, 3 столбец для аппроксимации полиномом
        double**f=new double*[p];
        for(i=0; i<p;i++)  
            f[i]=new double[3]; 
 
//создание потока для ввода чисел из файла
        
        ifstream in;
        in.open("D:\\FFF.txt");
        for (i=0;i<p;i++)
            for(j=0;j<2;j++)
                in>>f[i][j];
        in.close ();
 
        //тест введена ли таблица
        for (i=0;i<p;i++)
            cout<<f[i][0]<<"\t"<<f[i][1]<<"\n";
Правильно ли записана процедура освобождения памяти?
C++ (Qt)
1
2
3
4
//освобождение памяти
        for (i=0;i<p;i++)
            delete[]f[i];
        delete[]f;
Работает так же некорректно.
Открытие фаила не проверялось.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 16:13     Ошибка вывода данных в файл #8
Цитата Сообщение от illuminates Посмотреть сообщение
Открытие фаила не проверялось.
Что мешает сделать? Или есть уверенность, что открывается?

Добавлено через 2 минуты
C++
1
2
3
//тест введена ли таблица
        for (i=0;i<p;i++)
            cout<<f[i][0]<<"\t"<<f[i][1]<<"\n";
Нормальный вывод?
illuminates
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 106
24.10.2013, 16:16  [ТС]     Ошибка вывода данных в файл #9
Для проверки открыт ли файл написал:
C++ (Qt)
1
2
if (!in)
        cout << "Файл не открыт\n";
Файл открыт, с него списано первое число, остальные ячейки заполняются из ничего)
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 16:17     Ошибка вывода данных в файл #10
Что в файле FFF.txt покажите.
illuminates
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 106
24.10.2013, 16:20  [ТС]     Ошибка вывода данных в файл #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Нормальный вывод?
Поясните, пожалуйста, в выводе ошибка?

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Что в файле FFF.txt покажите.
В файле таблица:

-26 -17576,5
-25 -15624,8
-24 -13825
-23 -12167,3
-22 -10648,5
-21 -9260,8
-20 -8001
-19 -6859,3
...

и так далее, всего р=53 строки, столбцы разделены пробелом.
По идее массив f создавался размером р на 3, в третьей колонке записывается результат аппроксимации.
Затем весь массив помещается в новый документ, чтобы взять из него и построить в другой программе.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 16:23     Ошибка вывода данных в файл #12
Цитата Сообщение от illuminates Посмотреть сообщение
В файле таблица:
-26 -17576,5
-25 -15624,8
-24 -13825
-23 -12167,3
-22 -10648,5
-21 -9260,8
-20 -8001
Запятые на точки замените. У вас, на запятой, поток ломается.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2013, 16:26     Ошибка вывода данных в файл
Еще ссылки по теме:

Ошибка вывода - C++
ребят, есть код #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { ...

ошибка вывода - C++
Всем привет. Есть пару проблем в коде: При вводе числа меньше 7 считает выдает ответ. дальше если опять введем число меньше семи ответ уже...

Открыть файл для ввода и вывода - C++
Все привет. Есть код: #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; int main() { std::fstream...

Ошибка вывода букв - C++
Использую код для русских букв. На первой итерацци правильно отображает русский текст, а потом почемуто путает буквы. Сначала выдает как...

Ошибка вывода на консоль - C++
В Debug выводит адрес почему-то. В release же все нормально. Почему так и как это исправить? #include &lt;iostream&gt; #include &lt;string&gt; ...


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

Или воспользуйтесь поиском по форуму:
illuminates
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 106
24.10.2013, 16:26  [ТС]     Ошибка вывода данных в файл #13
Благодарю!!! Программа работает!
Yandex
Объявления
24.10.2013, 16:26     Ошибка вывода данных в файл
Ответ Создать тему
Опции темы

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