Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
ilyayuruts
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 4
#1

Считывание двумерного массива из текстового файла - C++

06.10.2016, 08:58. Просмотров 330. Ответов 7
Метки нет (Все метки)

Столкнулся с проблемой при компиляции в C++ Builder

([bcc32 Error] File1.cpp(29): E2062 Invalid indirection
Full parser context
File1.cpp(16): parsing: int main())

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
#pragma hdrstop
#pragma argsused
 
#ifdef _WIN32
#include <tchar.h>
#else
  typedef char _TCHAR;
  #define _tmain main
#endif
 
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
 
 int _tmain()
{
    int N,i,j; // переменная хранит значение размерности массива
    cout<<"Vvedite razmer massiva N=";
    cin>>N;
    int *A = new int[N];  //динамически создаем массив А
    int *B = new int[N];  //динамически создаем массив B
    int *C = new int[N];  //динамически создаем массив C
    FILE *fp; // объявление указателя на файл
    fp=fopen("d:\\massivA.txt","rt");
    for (i=0;i<N;i++)
    {
        for (j=0;j<N;j++)
        {
            fscanf(fp,"%d",&A[i][j]);
        }
    }
    for (i=0;i<=N-1;i++)
    {
        for (j=0;j<=N-1;j++)
        {
            printf ("%5d", A[i][j]);
            printf ("\n");
        }
    }
    fclose(fp);
    delete A,B,C;
}
Помогите пожалуйста решить проблему
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2016, 08:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание двумерного массива из текстового файла (C++):

Как организовать вывод двумерного массива (целые числа) из текстового файла? - C++
Люди, объясните младшему товарищу. как организовать вывод двумерного массива(целые числа) из текстового файла. скрин прилагается. работаю...

Считывание из текстового файла - C++
Всем привет. У меня есть текстовый файл в котором, к примеру записана информация:&quot;Фамилия Имя&quot;. Как мне из этого файла по словно...

Считывание текстового файла - C++
Вот сам файл Я считываю символ в отдельное поле класса, потом 2 цифры после символа в отдельные 2 поля, а затем сама проблема: остальные...

Считывание из текстового файла - C++
Нужно модифицировать программу. Чтобы пользователь вводил текст НЕ в диалоговом окне, а текст был записан в *. ТХТ файле, откуда программ...

Считывание текстового файла - C++
Помогите, пожалуйста, разобраться. При считывании текстового файла, последние несколько символов считываются 2 раза, т.е., если исходный...

Считывание с текстового файла. Сортировка - C++
С текстового файла считать последовательность записей, содержащих данные о книге: &lt;Автор&gt;, &lt;Название книги&gt;, &lt;Год издания&gt;, &lt;Количество...

7
MansMI
1292 / 1070 / 299
Регистрация: 08.01.2012
Сообщений: 4,069
06.10.2016, 09:09 #2
A[i][j] скок у него измерений?
1
nmcf
5538 / 4848 / 1644
Регистрация: 14.04.2014
Сообщений: 19,674
06.10.2016, 09:09 #3
У тебя 3 одномерных.
1
ilyayuruts
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 4
06.10.2016, 09:22  [ТС] #4
Спасибо большое! Уже исправил, теперь компилируется)

Добавлено через 5 минут
Теперь проблема с чтением. Ломается все на строке:
C++
1
fscanf (fp,"%d", &A[i][j]);
massivA.txt:
3 0 1 2
3 -1 2 1
-1 0 3 1
1 3 2 -2

В чем может быть проблема?
0
Slayerz
2 / 2 / 1
Регистрация: 14.07.2012
Сообщений: 28
Завершенные тесты: 2
06.10.2016, 09:50 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ломается, потому что вы создаете одномерный массив А, а хотите матрицу, следовательно нужно проинициализировать двумерный массив. В качестве примера создадим инициализируем квадратную матрицу 10x10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Инициализация.
    int** A;
 
        // Строки
    A = new int*[10];
        // Столбцы
    for (int i = 0; i < 10; i++)
    {
        A[i] = new int[10];
    }
    
    // Записываем значения. В первую строку первый столбец, первую строку/второй столбец.
    A[0][0] = 1;
    A[0][1] = 2;
 
    //Подчищаем за собой.
    for (int i = 0; i < 10; i++)
    {
        delete[] A[i];
    }
 
    delete[] A;
1
ilyayuruts
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 4
06.10.2016, 09:59  [ТС] #6
Я уже исправил ошибку с размерностью массива. Сейчас ошибка в другом: не хотят считываться значения элементов массива из файла massivA.txt. В чем проблема, понять не могу. Может есть мысли?
Проблема у меня в строке:
C++
1
fscanf (fp,"%d", &A[i][j]);
0
Slayerz
2 / 2 / 1
Регистрация: 14.07.2012
Сообщений: 28
Завершенные тесты: 2
06.10.2016, 10:43 #7
Можете считать следующим образом, подключите инклудник:

C++
1
#define <fstream>
И кусок кода, считываем матрицу 3x3 из файла:

C++
1
2
3
4
5
6
7
8
9
10
    ifstream file2("matrix.txt");
 
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            file2 >> A[i][j];
        }
    }
    file2.close();
1
ilyayuruts
0 / 0 / 0
Регистрация: 06.10.2016
Сообщений: 4
06.10.2016, 11:30  [ТС] #8
Дело в том, что в моем случае необходимо использовать именно функцию fscanf. Преподаватель так требует

Добавлено через 30 минут
C++
1
2
3
4
5
6
7
8
9
int** A = new int*[N];  //динамически создаем массив А
    int** B = new int*[N];  //динамически создаем массив B
    int** C = new int*[N];  //динамически создаем массив C
    for (i=0; i<N; i++)
    {
        A[i]=new int [N];
        B[i]=new int [N];
        C[i]=new int [N];
    }
Исправил. Дело было в неправильном создании двумерных массивов.
0
06.10.2016, 11:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2016, 11:30
Привет! Вот еще темы с ответами:

Считывание double из текстового файла - C++
Ковырялся тут в коде и заметил интересную фишку. Считываем значения double из текстового файла. ifstream ifs; ifs.open(name,...

Считывание строк из текстового файла - C++
Доброго времени суток! Дана задача: Подготовить файл со списком из 20 сотрудников (в каждой строке файла записаны фамилия, имя и...

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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