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

Нужно записать массив в файл, а потом из этого файла считать этот же массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора http://www.cyberforum.ru/cpp-beginners/thread22058.html
Вот сама задачка.:) Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от x нач. до x кон. с шагом dx с точностью eps. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. вот что у меня получилось ...
C++ Разместить на побочной диагонали матрицы суммы элементов, которые лежат на диагоналях, перпендикулярных к побочной. суть задачи : Заполнить матрицу случайными числами. Разместить на побочной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к побочной. Вот что есть. Но программа не выводит нужный результат. Буду признательна любой подсказке. Заранее спасибо !!! #include <stdio.h> #include <time.h> #include <stdlib.h> int Ar; int main(void) { http://www.cyberforum.ru/cpp-beginners/thread22042.html
C++ Конструктор
Создать абстрактный тип данных - класс вектор, который имеет указатель на float, число элементов и переменную состояния. Определить конструктор без параметров, конструктор с параметром, конструктор с двумя параметрами. Конструктор без параметров выделяет место для одного элемента и инициализирует его в ноль. Конструктор с одним параметром, - размер вектора, - выделяет место и инициализирует...
Вывод строк фиксированной длины из входного потока C++
Задача организовать цикл по входному потоку и вывести полученные getchar'ом символы в виде строк некоторой длины N. Допустим, если длина строки превышает N, тогда печатаем ее с переносом на следующую строку. Пример из книги Кернигана & Ритчи. Написать надо на обычном Си и без использования строковых функций. Как брать символы из вх. потока это все понятно, но не получается именно алгоритм...
C++ Сформировать список, в котором хранится информация о заболеваниях сотрудников http://www.cyberforum.ru/cpp-beginners/thread21976.html
Сформировать список, в котором хранится информация о заболеваниях сотрудников: ФИО, год рождения, заболевание, продолжительность болезни. Определить сотрудников, которые перенесли одно и тоже заболевание; заболевания с максимальной продолжительностью болезни; количество больничных каждого сотрудника; количество дней, пропущенных по болезни каждым сотрудником Если можно напишите пожалуйста...
C++ Решение системы уравнений компактным методом исключений На С++ надо решить систему уравнений компактным методом исключений. Элементы матрицы- комплексные числа, введенные в символьной форме. Числа обязательно должны быть представлены структурой. Ввод идет из файла txt потоками данных (ifstream, ofstream). Кто хоть что-нибудь может сказать по этому поводу, откликнитесь пожалуйста! подробнее

Показать сообщение отдельно
Splendid
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
30.01.2009, 16:29  [ТС]     Нужно записать массив в файл, а потом из этого файла считать этот же массив
а что здесь не правильно? Т.е. почему нельзя сделать как отдельную функцию создание и запись в файл, а потом его читать...или я опять чего-то не понимаю?

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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define true 1
#define false 0
 
//выводит вектор a длины n в файл fp 
unsigned int *vecprint(unsigned int *a, unsigned int n, FILE *fp)  
{  
    while (n--)  
        fprintf(fp, " %d%s",  
            *a++, (n == 0 ? "\n" : ""));  
    return ferror(fp) ? NULL : a;  
} 
 
 
// заполняет вектор a длины n данными из файла fp   
unsigned int *vecfill(unsigned int *a, unsigned int n, FILE *fp)  
{  
    unsigned int *vp;  
      
    for (vp = a; n > 0 && fscanf(fp, "%d", vp++) == 1; n--)  
        ;  
    return ferror(fp) ? NULL : a;      
}  
 
 
int createfile(){
 
    //создать текстовый файл для чтения/записи
    FILE *fp;
    unsigned int n=615;  // Текущее количество найденных простых чисел
    unsigned int k;  // Текущее количество найденных простых чисел
    unsigned int *a; // Указатель на массив найденных простых
    unsigned int p;  // Очередное проверяемое число
    unsigned int r;  // Целая часть квадратного корня из p
    unsigned int i;  // Индекс простого делителя
    unsigned int prime; // Признак простоты
        
    if ((fp = fopen("test.txt", "w+")) == NULL)
 
        {
 
        printf("Error open file");
 
        exit(1);
 
        }
 
 
    if (n <= 0)   // Некорректное значение =>
        return 1; // завершаем работу с кодом ошибки
 
    // Захватываем память под массив простых чисел
    a = (unsigned int *) malloc(n * sizeof(unsigned int));
 
    a[0] = 2; k = 1;     // Добавляем двойку в массив
   
    p = 3;
    while (k < n) {
 
        // Проверяем число p на простоту
        r = (unsigned int)(               // Целая часть корня
            sqrt((double) p) + 0.001
        );
        i = 0;
 
        prime = true;
        while (i < k && a[i] <= r) {
            if (p % a[i] == 0) { // p делится на a[i]
                prime = false;   // => p не простое,
                break;           // выходим из цикла
            }
            ++i; // К следующему простому делителю
        }
 
        if (prime) {  // Если нашли простое число,
            a[k] = p; // то добавляем его в массив
            ++k;      // Увеличиваем число простых    
        }
 
        p += 2; // К следующему нечетному числу
    }
 
    vecprint(a, n, fp);  
 
    //закрыть файл
    fclose(fp);
 
return 0;
 
    }
 
int main(){
 
   
    FILE *fp;
    unsigned int k,n;  // Текущее количество найденных простых чисел
    unsigned int *a; // Указатель на массив найденных простых
    createfile();
    if ((fp = fopen("test.txt", "r")) == NULL)
 
        {
 
        printf("Error open file");
 
        exit(1);
 
        }
 
    vecfill(a, n, fp);
 
    for(k=0; k<n; k++){
 
        printf("%d ", a[k]); // Печатаем простое число  
        
    }
}
 
Текущее время: 01:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru