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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
#1

Считывание массива из файла - C++

28.11.2012, 22:21. Просмотров 1430. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
  
  int i,j;
int matr1[i][j];
 
FILE *f1;
f1=fopen("/home/linke/out1.txt","r");
for(int i=0; i < 4;i++){
       for(int j=0; j < 4 ;j++) fscanf(f1, "%d ", &matr1[i][j]);
}
 for(int i=0; i < 4;i++){
       for(int j=0; j < 4 ;j++)cout << matr1[i][j]<<" ";
       cout << endl;
   }
 
return 0;
}
Вобщем нужно напечатать матрицу, считанную из файла.но программа при размере матрицы 4*4 печатает 4 раза последнюю строку из файла.Где мне исправить надо?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 22:21     Считывание массива из файла
Посмотрите здесь:

Считывание элементов массива из файла C++
Считывание одномерного массива из файла. Оценка о-сложности алгоритма C++
Считывание из файла трехмерного массива и запись C++
C++ Чтения файла, массивы, считывание массива
Считывание массива из файла C++
Заменить считывание с клавиатуры на считывание из файла C++
Считывание элементов массива из файла, где в первой строке можно задавать размерность массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
414 / 414 / 85
Регистрация: 28.11.2010
Сообщений: 1,175
Завершенные тесты: 1
28.11.2012, 23:36     Считывание массива из файла #2
Что вы тут имели в виду в 8 строке int matr1[i][j]; ???
Может int n=4, m=5; int matr[n][m] или int matr[m][m] и т.д. ?
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
28.11.2012, 23:39  [ТС]     Считывание массива из файла #3
Цитата Сообщение от vua72 Посмотреть сообщение
Что вы тут имели в виду в 8 строке int matr1[i][j]; ???
Может int n=4, m=5; int matr[n][m] или int matr[m][m] и т.д. ?
ну я объявил матрицу matr1, которую буду использовать
vua72
414 / 414 / 85
Регистрация: 28.11.2010
Сообщений: 1,175
Завершенные тесты: 1
28.11.2012, 23:44     Считывание массива из файла #4
int i,j;
int matr1[i][j];

а размер этой матрицы какой?
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
28.11.2012, 23:45  [ТС]     Считывание массива из файла #5
Цитата Сообщение от vua72 Посмотреть сообщение
int i,j;
int matr1[i][j];

а размер этой матрицы какой?
в данном случае 4 на 4
vua72
414 / 414 / 85
Регистрация: 28.11.2010
Сообщений: 1,175
Завершенные тесты: 1
28.11.2012, 23:51     Считывание массива из файла #6
в данном случае неизвестно какой на какой, вы не присваиваете переменным i и j в 7 строке никаких значений
В таком варианте вы создадите действительно массив 4 на 4.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
    int n=4, m=4;
    int matr1[n][m];
    FILE *f1;
    f1=fopen("/home/linke/out1.txt","r");
    for(int i=0; i < n; ++i) {
        for(int j=0; j < m ; ++j)
            fscanf(f1, "%d ", &matr1[i][j]);
    }
    for(int i=0; i < n; ++i) {
        for(int j=0; j < m ; ++j)
            cout << matr1[i][j]<<" ";
        cout << endl;
    }
    return 0;
}
И почему тогда не использовать std::ifstream, если пишете на С++?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2012, 23:54     Считывание массива из файла
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
28.11.2012, 23:54  [ТС]     Считывание массива из файла #7
Цитата Сообщение от vua72 Посмотреть сообщение
в данном случае неизвестно какой на какой, вы не присваиваете переменным i и j в 7 строке никаких значений
В таком варианте вы создадите действительно массив 4 на 4.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
    int n=4, m=4;
    int matr1[n][m];
    FILE *f1;
    f1=fopen("/home/linke/out1.txt","r");
    for(int i=0; i < n; ++i) {
        for(int j=0; j < m ; ++j)
            fscanf(f1, "%d ", &matr1[i][j]);
    }
    for(int i=0; i < n; ++i) {
        for(int j=0; j < m ; ++j)
            cout << matr1[i][j]<<" ";
        cout << endl;
    }
    return 0;
}
спасибо огроменное!!!!
Yandex
Объявления
28.11.2012, 23:54     Считывание массива из файла
Ответ Создать тему
Опции темы

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