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

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

05.04.2015, 12:31. Показов 6136. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа массив генерирует все ок, а вот с записью массива и чтением его - у меня проблемы. Ругается на f и buf
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
//main.cpp
 
#include<cmath>
#include<iostream>
#include<cstdio>
#include<conio.h>
#include<fstream>
#include"Lab08_methods.h"
using namespace std;
int main()
{
 
    while (1)
    {
        cout << "Generate Array[1]: \n ";
        cout << "Save Array to a new file [2] \n";
        cout << "Open Array to the screen [3] \n";
        cout << "Quit [4] \n";
        cout << "Make your choise please: ";
        char Choise;
        cin >> Choise;
        switch (Choise)
        {
        case'1':
            ArrayGenerator();
            break;
        case'2':
            ChangingContent();
            break;
        case'3':
            ConsiderTheValue();
            break;
        case'4':
            cout << "Thank you for using this program!\n";
            system ("pause");
            return 0; 
        default:
            cout << "Incorrect choise\n";
        }
    }
    _getch();
    return 0;
}
а вот библиотека с функциями:

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
//Lab08_methods.h
#ifndef LAB08_METHODS_H
#define LAB08_METHODS_H
#endif
int Array[20];
 
#include<iostream>
 
using namespace std;
 
    void ArrayGenerator()
    {
        for (int i = 0; i < sizeof(Array); i++)
            Array[i] = rand() % 101;
        printf("array generated!\n");
    }
 
    void ChangingContent()
    {
        fopen("test.txt", "w");
        for (int i = 0; i < sizeof(Array); i++) fprintf(f, " %d", buf[i]);
        fclose(f);
        
    }
 
 
    int ConsiderTheValue()
    {
        fopen("test.txt", "r");
        for (int i = 0; i < sizeof(Array); i++) fscanf(f, " %d",  buf + i);
        fclose(f);
        return 0;
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.04.2015, 12:31
Ответы с готовыми решениями:

Запись массива в файл/чтение из файла
1) ввести с клавиатуры матрицу ( размером 4*4 или 5*5) и записать в файл; 2) обр. оерация- считать файл, найти макс элемент и вывести на...

Чтение массива из файла, его преобразование и запись в другой файл
Всем привет. Есть вот такой код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;fstream&gt; #include &lt;string&gt; ...

Запись в файл, чтение из файла
В общем, неделю назад мне помогли на этом форуме сделать программу. И все прекрасно работает на visual studio, но в универе у нас везде...

11
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
05.04.2015, 13:05
Лучший ответ Сообщение было отмечено DrTeemo как решение

Решение

C++
1
2
3
4
5
6
7
8
void ChangingContent(int* buf, int N)
 {
        FILE f=fopen("test.txt", "w");
        for (int i = 0; i < N; i++) 
            fprintf(f, " %d\n", buf[i]);
        fclose(f);
        
 }
int Array[20]; перенесите в main
Вызов функции
C++
1
ChangingContent(Array, 20);
И посмотрите вот это:
Образцы (шаблоны) программ для типовых задач
1
1 / 1 / 0
Регистрация: 14.11.2014
Сообщений: 47
05.04.2015, 13:17  [ТС]
вот что получается:
Миниатюры
Запись массива в файл и чтение из файла  
0
1 / 1 / 0
Регистрация: 14.11.2014
Сообщений: 47
05.04.2015, 13:38  [ТС]
А вот что после переноса
C++
1
int Array[20];
в main
Миниатюры
Запись массива в файл и чтение из файла  
0
1 / 1 / 0
Регистрация: 14.11.2014
Сообщений: 47
05.04.2015, 17:10  [ТС]
zss, так вы не подскажете в чем заключается трабл?
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
05.04.2015, 17:32
Лучший ответ Сообщение было отмечено DrTeemo как решение

Решение

Пардон, FILE f=fopen("test.txt", "w");
надо
C++
1
 FILE* f=fopen("test.txt", "w");
Работа с FILE - это Сишные функции.
А Вы тему разместили в разделе С++, не обессудьте!

Добавлено через 1 минуту
И оформите ВСЕ функции в таком стиле, а не только ту, которую я поправил.
Я что, зря давал Вам ссылку
Образцы (шаблоны) программ для типовых задач
????
1
1 / 1 / 0
Регистрация: 14.11.2014
Сообщений: 47
05.04.2015, 19:13  [ТС]
zss, Ну не зря, вроде-бы оформил, и нашел ошибку в вашем коде, где в заполнении массива случайными числами написано кфтв вместо положенного rand, тему же разместил в том разделе на языке которого я пишу программы (пытаюсь) а функцию FILE нам преподаватель преподнес и обьяснил как функцию С++. Простите за то что отнимаю ваше время, подскажите что делать с этими ошибками?
две последние относятся к:
C++
1
2
3
case'1':
    ArrayGenerator();
break;
Миниатюры
Запись массива в файл и чтение из файла   Запись массива в файл и чтение из файла  
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
05.04.2015, 19:36
Лучший ответ Сообщение было отмечено DrTeemo как решение

Решение

Цитата Сообщение от DrTeemo Посмотреть сообщение
ArrayGenerator();
C++
1
ArrayGenerator(Array,20);
1
1 / 1 / 0
Регистрация: 14.11.2014
Сообщений: 47
05.04.2015, 19:38  [ТС]
zss, Благодарю, а с необьявленным идентификатором что делать?
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
05.04.2015, 19:40
Лучший ответ Сообщение было отмечено DrTeemo как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    void ArrayGenerator(int* Array,int n)
    {
        for (int i = 0; i < n; i++)
            Array[i] = rand() % 101;
        printf("array generated!\n");
    }
 
    void ChangingContent(int* Array,int n)
    {
        fopen("test.txt", "w");
        for (int i = 0; i <n; i++) fprintf(f, " %d", buf[i]);
        fclose(f);
        
    }
 
 
    int ConsiderTheValue(int* Array,int n)
    {
        fopen("test.txt", "r");
        for (int i = 0; i < n; i++) fscanf(f, " %d",  Array + i);
        fclose(f);
        return 0;
    }
Добавлено через 1 минуту
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
#include<iostream>
#include<conio.h>
#include"Lab08_methods.h"
using namespace std;
int main()
{
   int Array[20];
    while (1)
    {
        cout << "Generate Array[1]: \n ";
        cout << "Save Array to a new file [2] \n";
        cout << "Open Array to the screen [3] \n";
        cout << "Quit [4] \n";
        cout << "Make your choise please: ";
        char Choise;
        cin >> Choise;
        switch (Choise)
        {
        case'1':
            ArrayGenerator(Array,20);
            break;
        case'2':
            ChangingContent(Array,20);
            break;
        case'3':
            ConsiderTheValue(Array,20);
            break;
        case'4':
            cout << "Thank you for using this program!\n";
            system ("pause");
            return 0; 
        default:
            cout << "Incorrect choise\n";
        }
    }
    _getch();
    return 0;
}
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
05.04.2015, 19:56
Цитата Сообщение от zss Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void ChangingContent(int* Array,int n)
    {
        fopen("test.txt", "w");
        for (int i = 0; i <n; i++) fprintf(f, " %d", buf[i]);
        fclose(f);
        
    }
 
 
    int ConsiderTheValue(int* Array,int n)
    {
        fopen("test.txt", "r");
        for (int i = 0; i < n; i++) fscanf(f, " %d",  Array + i);
        fclose(f);
        return 0;
    }
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void ChangingContent(int* Array,int n)
    {
        FILE *f = fopen("test.txt", "w");
        for (int i = 0; i <n; i++) fprintf(f, " %d", Array[i]);
        fclose(f);
        
    }
 
 
    int ConsiderTheValue(int* Array,int n)
    {
        FILE *f = fopen("test.txt", "r");
        for (int i = 0; i < n; i++) fscanf(f, " %d",  Array + i);
        fclose(f);
        return 0;
    }

Не по теме:

А вообще, имхо, лучше использовать какой-то один стиль. А то взять хотя бы fprintf/fscanf - здесь так, там так..
Либо &Array[i]/Array[i], либо (Array + i)/*(Array + i), тогда уж..

1
1 / 1 / 0
Регистрация: 14.11.2014
Сообщений: 47
05.04.2015, 23:28  [ТС]
KOPOJI, Учту) не подскажете, как из этого фрагмента кода (открытие файла) массив вывести на экран?
C++
1
2
3
4
5
6
7
8
9
    int ConsiderTheValue(int* Array, int N)
    {
        FILE* f = fopen("test.txt", "r");
        for (int i = 0; i < N; i++) 
            fscanf(f, " %d", Array + i);
        printf("\nArray is stored in the file! \n");
        fclose(f);
        return 0;
    }
Добавлено через 2 часа 44 минуты
P.S. уже не нужно!

Всем огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.04.2015, 23:28
Помогаю со студенческими работами здесь

Чтение из файла, запись в файл
Тут такая у меня проблема. 1) Не работает цикл в майне. Как его правильно организовать? 2) И, похоже, чтение из файла все-таки,...

Чтение из файла и запись в файл
всем привет! нужно написать программу, которая читает строку из файла. если слово содержит &quot;*&quot;, то его удалить, &quot;+&quot; -...

Чтение из файла и запись в файл
Создайте текстовый файл целых чисел (значения вводятся с клавиатуры). Проанализировав в программе созданный файл, создайте еще 2 файла: ...

Запись в файл и чтение из файла
Подскажите, пожалуйста, почему в &quot;прочитанном&quot; последнее число дублируется? В чем ошибка? #include &quot;stdafx.h&quot; #include...

Чтение из файла/Запись в файл
Приветствую всех! Понимаю что тема заезженная вдоль и поперек, но помощь мне нужна срочно! Мне нужно написать программу, которая...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru