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

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

24.10.2013, 10:10. Показов 1650. Ответов 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);
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2013, 10:10
Ответы с готовыми решениями:

Ошибка в функциях вывода данных в файл
Программа вводит записи, состоящие из 3 полей в 2 разных файла по выбору. Но в чём-то ошибка в функциях вывода данных в файл. А именно в...

Ошибка вывода в файл
Дан текст, имеющий вид: « d1 - d2 + d3 - …», где di – цифры (n &gt; 1). Вычислить записанную в тексте алгебраическую сумму. Открываю один...

Ошибка вывода в файл
Компилируется, но в файл не выводит #include &quot;iostream&quot; #include &quot;stdlib.h&quot; #include &quot;fstream&quot; #include &quot;stdio.h&quot; ...

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

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

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;
Работает так же некорректно.
Открытие фаила не проверялось.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 16:13
Цитата Сообщение от illuminates Посмотреть сообщение
Открытие фаила не проверялось.
Что мешает сделать? Или есть уверенность, что открывается?

Добавлено через 2 минуты
C++
1
2
3
//тест введена ли таблица
        for (i=0;i<p;i++)
            cout<<f[i][0]<<"\t"<<f[i][1]<<"\n";
Нормальный вывод?
0
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 109
24.10.2013, 16:16  [ТС]
Для проверки открыт ли файл написал:
C++ (Qt)
1
2
if (!in)
        cout << "Файл не открыт\n";
Файл открыт, с него списано первое число, остальные ячейки заполняются из ничего)
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 16:17
Что в файле FFF.txt покажите.
0
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 109
24.10.2013, 16:20  [ТС]
Цитата Сообщение от 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, в третьей колонке записывается результат аппроксимации.
Затем весь массив помещается в новый документ, чтобы взять из него и построить в другой программе.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 16:23
Цитата Сообщение от illuminates Посмотреть сообщение
В файле таблица:
-26 -17576,5
-25 -15624,8
-24 -13825
-23 -12167,3
-22 -10648,5
-21 -9260,8
-20 -8001
Запятые на точки замените. У вас, на запятой, поток ломается.
1
3 / 3 / 0
Регистрация: 14.06.2012
Сообщений: 109
24.10.2013, 16:26  [ТС]
Благодарю!!! Программа работает!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2013, 16:26
Помогаю со студенческими работами здесь

Ошибка вывода данных
Есть такой код php: //Вывод списка function output_list($cat) { $result_cat = mysql_query(&quot;SELECT * FROM users...

Запись данных в файл(потоки ввода и вывода)
Всем привет, попробовал написать программу записи данных(ввод с клавиатуры) в отдельный файл на &quot;Ж.Д.&quot; но не получилось, вот...

Ошибка ввода вывода 103: файл не открыт
Люди добрые выручите,завтра сдавать работу а я обнаружил ошибку при работе одной из процедур.Ошибка ввода/вывода 103: файл не...

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

Порт Ввода-вывода, ошибка записи в файл?
Суть такова: прога принимает файлы по TCP. В серверной части испл.порт ввода-вывода (CreateIoCompletionPort, GetQueuedCompletionStatus),...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru