Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
PointsEqual
ниначмуроФ
841 / 525 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
1

Загрузка чисел из файла

26.03.2010, 17:21. Просмотров 801. Ответов 13
Метки нет (Все метки)

Здрасти, как загрузить матрицу из файла?
если есть такой txt-файл:

3 3
1 2 3
4 5 6
7 8 9

первая строка-размерность матрицы(3 3)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2010, 17:21
Ответы с готовыми решениями:

Загрузка чисел в массив из файла
Есть файл с числами (19 29 0), разделенными пробелами (разного количества)....

Загрузка данных из файла с возможностью выбора файла
Всем доброго времени суток. У меня возник такой вопрос как организовать выбор...

[C++] Загрузка файла
#include "stdafx.h" #include <windows.h> #include <urlmon.h> #pragma...

Загрузка структуры из файла
Объясните, пожалуйста, как произвести загрузку чисел вещественного типа из...

Загрузка файла на хостинг
Доброго времен суток, уважаемые посетители cyberforum! Хотелось бы узнать,...

13
Hypafrag
26 / 25 / 2
Регистрация: 19.03.2010
Сообщений: 57
26.03.2010, 18:07 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
 
int SizeX, SizeY, **Matr;
FILE *f;
 
f = fopen("filename.txt", "rt");
 
fscanf(f, "%d %d", &SizeX, &SizeY);
Matr = (int**)malloc(sizeof(int*) * SizeX);
for (int i = 0; i < SizeX; i++)
{
    Matr[i] = (int*)malloc(sizeof(int) * SizeY);
}
for (int i = 0; i < SizeX; i++)
{
    for (int j = 0; j < SizeY; j++)
    {
       fscanf(f, "%d", &Matr[i][j]);
    }
}
fclose(f);
1
PointsEqual
ниначмуроФ
841 / 525 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
26.03.2010, 19:12  [ТС] 3
а как вывести на экран только что считанный символ? printf(...)
0
Hypafrag
26 / 25 / 2
Регистрация: 19.03.2010
Сообщений: 57
26.03.2010, 19:33 4
После fscanf(f, "%d", &Matr[i][j]); добавь printf("%d", Matr[i][j]);
1
PointsEqual
ниначмуроФ
841 / 525 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
26.03.2010, 19:35  [ТС] 5
а на с++ не переведете?
0
Hypafrag
26 / 25 / 2
Регистрация: 19.03.2010
Сообщений: 57
26.03.2010, 19:39 6
Так, оно и на с++ работает
0
PointsEqual
ниначмуроФ
841 / 525 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
26.03.2010, 19:40  [ТС] 7
ну а что такое rt значит?
C++
1
f = fopen("filename.txt", "rt");
0
Hypafrag
26 / 25 / 2
Регистрация: 19.03.2010
Сообщений: 57
26.03.2010, 19:42 8
r - открыть для чтения
t - текстовый режим
1
PointsEqual
ниначмуроФ
841 / 525 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
26.03.2010, 19:44  [ТС] 9
чего то я неправильно значит сделал, - нули все выводится(
0
stratovarius
13 / 13 / 3
Регистрация: 12.07.2009
Сообщений: 114
26.03.2010, 19:45 10
Цитата Сообщение от PointsEqual Посмотреть сообщение
ну а что такое rt значит?
C++
1
f = fopen("filename.txt", "rt");
то, что ты открываешь текстовый файл для чтения
1
Hypafrag
26 / 25 / 2
Регистрация: 19.03.2010
Сообщений: 57
26.03.2010, 19:50 11
Имя файла правильно введено?

После f = fopen(...) не плохо бы проверку поставить:
C
1
2
3
4
if (f == NULL)
{
    //обработка ошибки открытия файла
}
0
PointsEqual
ниначмуроФ
841 / 525 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
26.03.2010, 21:05  [ТС] 12
проверка прошла удачно, я думаю чтото в создании массива, т.к вместо malloc я использовал своё создание матрицы:

C++
1
2
3
4
5
6
7
8
9
float** CreateMatrix(int count_row,int count_col){
    float** Matrix=new float*[count_row];
    for (int i=0; i<count_row; i++)
    Matrix[i]=new float[count_col];
    for (int i=0; i<count_row; i++)
    for (int j=0; j<count_col; j++)
    Matrix[i][j]=0;
    return &Matrix[0];
}
0
Hypafrag
26 / 25 / 2
Регистрация: 19.03.2010
Сообщений: 57
26.03.2010, 21:40 13
Ситуация такая - в scanf("%d", &Matr[i][j]) %d означает, что считываются целые числа.
Чтобы считывать вещественные, %d нужно заменить на %f.
Это относится и к printf.
0
PointsEqual
ниначмуроФ
841 / 525 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
27.03.2010, 10:53  [ТС] 14
Hypafrag, я вот так сделал на с++:

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
 ifstream in(pathToFileLoad.c_str(), ios::in | ios:: binary);
                if (!in){
                    cout<<"Error open file "<<pathToFileLoad<<std::endl;
                    return 1;
                }
                int row=0;
                int col=0;
                int it=0;
                in>>count_supplier;//row;
                in>>count_consumer;//col;
                float** MatrixPostav=CreateMatrix(count_supplier,count_consumer);
                    int i=0;
                    int j=0;
                   for (int g=1; g<count_consumer*count_supplier+1; g++){
                       in>>it;
                       cout<<it;
 
                       MatrixPostav[i][j]=it;
                       j++;
                       if ((g)%count_consumer==0){
                           j=0;
                           i++;
                       }
 
                   }
cout<<endl;
                       for (int i=0; i<count_supplier; i++){
                        for (int j=0; j<count_consumer; j++){
                            cout<<MatrixPostav[i][j]<<" ";
                        }
                        cout<<endl;
                        }
                        getch();
работает
0
27.03.2010, 10:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2010, 10:53

Загрузка файла в массив
Здравствуйте, помогите, при загрузке из файла в массив - выбивается какой-то...

Загрузка файла из интернета
Товарищи, имею следующих вопрос- необходимо мне написать программу на C++,...

Загрузка файла в дерево
надо загрузить фаил в дерево и произвести продвижение по дереву на ходя...


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

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

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