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

Запись файла в массив и чтение из него

06.12.2011, 23:51. Показов 1299. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <conio.h>
#include <stdio.h>
 
 
 
void vvodznach ( int n, int m, double A[15][15] )
{
    int i, j;
        for ( i = 0; i < n; i++ )
                for ( j = 0; j < m; j++ )
                {
                        printf( "A[%d][%d]=", i, j );
                        scanf( "%lf", &A[i][j] );
                }
 
}
double zapolnenie ( int n, int m, double A[15][15])
 {
        int i;
        int j;
        printf( "\nIZMENENNIY MASSIV\n" );
        for ( i = 0; i < n; i++ )
                for ( j = 0; j < m; j++ )
                {
 
                        if ( i <= j ) {
                                A[i][j] = ( 1.0 / ( ( i * i ) + 2.0 ) );
                        }
                        else {
                                A[i][j] = ( 1.0 / ( i + j ) );
                        }
                       
                }
                printf( "A[%d][%d] = \n",i,j );
        for (i=0; i<n; i++)
            {  for (j=0; j<m; j++)
                       { printf( "%7.2f  ", A[i][j] );
                     
        }
        printf("\n");
    }
} 
double sum (int n, int m, double A[15][15])
{
        int i;
        int j;
        double s;
    
       
        s = 0;
 
        for ( i = 0; i < n; i++ )
        {
                s += A[i][j];
        }
        return s;
}
 
int SaveArray(double A[], int n, char const *frame)
{
    FILE *F = fopen(frame, "wt");
    if(F==NULL) 
    {
        return 0;
    }
    fprintf(F,"%d \n",n);
    for(int i=0; i<n; i++)
    {
        fprintf(F,"%lf\t  ",A[i], sizeof ( double ) *n*n);
    }
    fclose(F);
    
    return 1;
}
 
int main ()
{
        int m, n, i, j;
        double A[15][15];
        double s;
        
        printf("Vvedite razmer massiva...\n");
        printf("\n");
        printf("N=", n);
        scanf("%d", &n);
        printf("M=", m);
        scanf("%d",&m);
        printf("\n");
        if ((n<4)|(n>15)|(m<4)|(m>15))
        printf ("Neverniy razmer massiva\n");
        else
        {
            //vvodznach ( n, m, A);
            zapolnenie (n, m, A);
            printf( "\nVVEDITE NOMER STOLBCA [0..M] = " );
            scanf( "%d", &j );
            s=sum (n, m, A);
            printf( "SUMMA[%d] = %7.2f", j, s);
            SaveArray ( A[n], n, "qq1.txt" );
        }
        getch ();
}

В файл записывает, но там какой-то мусор. Подскажите, где ошибка?

Добавлено через 4 часа 19 минут
Нету идей?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2011, 23:51
Ответы с готовыми решениями:

Чтение из бинарного файла и запись в него вектора чисел
Всем доброго времени суток форумчане!:) Есть код который читает из двух файлов два вектора чисел. Создаёт третий вектор поиском...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...

Чтение из файла и запись в массив на с++
Добрый день. Хотелось бы попросить помощи. Необходимо считать данные из файла(данные измерений в виде матрицы - числа типа double....

4
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
07.12.2011, 08:17
C++
1
        fprintf(F, "%f\t  ", A[i]);
сохраняешь то ты его всё равно неправильно
потому что неправильно передаёшь в функцию
1
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 38
14.12.2011, 11:00  [ТС]
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
#include <conio.h>
#include <stdio.h>
#define N 10
 
 
 
void vvodznach ( int n, int m, double A[15][15] )
{
    int i, j;
        for ( i = 0; i < n; i++ )
                for ( j = 0; j < m; j++ )
                {
                        printf( "A[%d][%d]=", i, j );
                        scanf( "%lf", &A[i][j] );
                }
 
}
double zapolnenie ( int n, int m, double A[0][0])
{
    printf( "\nIZMENENNIY MASSIV\n" );
    
    for (int i = 0; i < n; i++ )
    {
        for (int j = 0; j < m; j++ )
        {
            if ( i <= j ) 
            {
                A[i][j] = ( 1.0 / ( ( i * i ) + 2.0 ) );
                printf("%lf ",A[i][j]);
            }
            else 
            {
                A[i][j] = ( 1.0 / ( i + j ) );
                printf("%lf ",A[i][j]);
            }
                       
        }
        printf("\n");
    }
    printf("----------------------------------\n");
} 
double sum (int n, int m, double A[0][0])
{
        int i;
        int j;
        double s;
    
       
        s = 0;
 
        for ( i = 0; i < n; i++ )
        {
            s += A[i][j];
        }
       return s;        
}
 
int SaveArray(double A[0][0],int n,int m,char const *fname)
{
 FILE*f= fopen(fname,"wt");
 if(f==NULL) 
    {
        return 0;
    }
 for(int i=0; i<n; i++)
    { 
        for(int j=0; j<m; j++)
        {
            printf("A[%d][%d] = %lf ",i,j,A[i][j]);
            fprintf(f, "%lf", A[i][j]);
        }
        fprintf(f,"\n");
        printf("\n");
    }
 fclose(f);
 return 1;
}
 
int main ()
{
    int m, n, i, j;
        
    double s;
        
    printf("Vvedite razmer massiva...\n\nN = "); scanf("%d", &n);
    printf("M = "); scanf("%d",&m); 
    printf("\n");
    
        double A[0][0];
        if ((n<4)|(n>15)|(m<4)|(m>15))
        printf ("Neverniy razmer massiva\n");
        else
        {
            zapolnenie (n, m, A);
            SaveArray(A, n, m, "qq2.txt");
            printf( "\nVVEDITE NOMER STOLBCA [0..M] = " );
            scanf( "%d", &j );
            
            s=sum (n, m, A);
            printf( "SUMMA[%d] = %7.2f", j, s);
            
            
            
        }
        getch ();
}
Сохраняет в файл только элементы последней строки. Помогите кто-нибудь, не пойму никак.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
14.12.2011, 11:27
неправильно создаёшь массив в main()
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
14.12.2011, 12:13
Chiakiii, попробуй
C++
1
double arr[15][15];
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2011, 12:13
Помогаю со студенческими работами здесь

Чтение из файла и запись в массив
Доброго времени суток. Не получается записать содержимое файла в массив для поиска максимального значения Содержимое файла: 1 2 3 4 5 6...

Чтение из файла и запись в массив
Добрый день. Я застрял на приведении типов при чтении строки из файла и попытке записи ее элементов в List teacher. Вот так у меня...

Чтение из файла и запись в массив
Есть текстовый файл с содержанием фамилии, занятого места и количества набранных баллов: Тик : 1 : 100 Вит : 10 : 10 Кип : 7 : 40 ...

Чтение из файла и запись в массив
Здравствуйте! Проблема такая ... не работает программа скорее всего потому что не могу передать массив. в си передается через указатели а...

Чтение с текстового файла и запись в массив
Народ помогите!!! Есть данные предварительно записанные в файл программой! Нужно считать с файла Test.txt значения функций в массив, ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru