Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Вероника99
5 / 5 / 5
Регистрация: 16.12.2013
Сообщений: 461
1

Считать данные с файла и занести их последовательно в двумерный массив

25.01.2015, 20:21. Просмотров 863. Ответов 5
Метки нет (Все метки)

Здравствуйте. Возник следующий вопрос: мне нужно считать данные с файла и занести их последовательно в двумерный массив. При выводе уже заполненного массива выдает совершенно другие значения. Почему так?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define N 6
...
int graph[N][N];
int num;
for (int i=0; i<N; i++)
    for (int j=0; j<N; j++)
{
while((num=getc(f))!=EOF)   
    {       
            graph[i][j]=num;
 
            printf("\n - %i ",(int)getc(f));
        
        putc(graph[i][j],stdout);
            
        
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2015, 20:21
Ответы с готовыми решениями:

Как правильно считать двумерный массив из файла
Не получается считать двумерный массив из файла, часть элементов масива заменяются на нули....

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

Как считать данные из файла в массив?
Ребят, спасайте

Не получается корректно занести входные строки в двумерный массив
Не получается корректно занести входные строки в двумерный массив. С цифрами все получается. И...

Как считать данные с файла в двумерный массив?
В текстовом файле находится список студентов и год рождения, например: Фамилия Имя 1999...

5
Germanant
107 / 107 / 110
Регистрация: 28.02.2011
Сообщений: 975
Завершенные тесты: 2
25.01.2015, 20:33 2
чтение
C++
1
2
3
4
5
6
7
8
9
10
FILE *fin;
if (!(fin=fopen('data',"rb")))
{printf("Ошибка открытия файла !");return 0;}
int buf;
while (fread(&buf, sizeof(int), 1, fin))
 {
  graph[i][j]=buf;
 }
fclose(fin);
};
запись
C++
1
2
3
4
5
6
FILE *fout;
fout=fopen(f_name,"wb");
for (int i=0; i<N; i++)
    for (int j=0; j<N; j++)
     fwrite(&graph[i][j], sizeof(int), 1, fout);
fclose(fout);
0
Вероника99
5 / 5 / 5
Регистрация: 16.12.2013
Сообщений: 461
25.01.2015, 20:55  [ТС] 3
Оно все равно мусор выдает,скажите пожалуйста,как поступить с индексами массива?Я сделала два стандартных цикла для двумерного массива
0
Germanant
107 / 107 / 110
Регистрация: 28.02.2011
Сообщений: 975
Завершенные тесты: 2
25.01.2015, 20:56 4
выложите весь код, я посмотрю и подправлю
0
Вероника99
5 / 5 / 5
Регистрация: 16.12.2013
Сообщений: 461
25.01.2015, 20:59  [ТС] 5
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
#define N 6
...
int graph[N][N]; //глобальный массив
...
int File(void)  
{
    FILE *fin;
    char *name="E:\\123.txt";
    if (!(fin=fopen(name,"rb")))
    {printf("Ошибка открытия файла !");
    return 0;
    }
    int buf,u=0;
    for (int i=0; i<N; i++)
    for (int j=0; j<N; j++)
    {while (fread(&buf, sizeof(int), 1, fin))
     {
      graph[i][j]=buf;
    printf("%i ",graph[i][j]);
     }
    fclose(fin);
    }
    
    return 1;     
}
0
Germanant
107 / 107 / 110
Регистрация: 28.02.2011
Сообщений: 975
Завершенные тесты: 2
25.01.2015, 21:33 6
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
int graph[N][N];
 
FILE *fout;
fopen_s(&fout,"1.txt","wb");
for (int i=0; i<N; i++)
    for (int j=0; j<N; j++)
    {
        graph[i][j]=rand()%10;
     fwrite(&graph[i][j], sizeof(int), 1, fout);
    }
fclose(fout);
 
 
 FILE *fin;
 fopen_s(&fin,"1.txt","rb");
    if (!(fin))
    {printf("Ошибка открытия файла !");
    return 0;
    }
    int buf,u=0;
    int i=0,j=0;
    {while (fread(&buf, sizeof(int), 1, fin))
     {
      graph[i][j]=buf;
 
    printf("%i ",graph[i][j]);
    j++;
    if(j==N){i++;j=0;printf("\n");}
     }
    fclose(fin);
    }
Добавлено через 10 минут
если читать как текстовый а не бинарный то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 FILE *fin;
 fopen_s(&fin,"1.txt","rt");
    if (!(fin))
    {printf("Ошибка открытия файла !");
    return 0;
    }
    int buf,u=0;
    int i=0,j=0;
    {while (!feof(fin))
     {
         fscanf_s(fin,"%d",&buf);
      graph[i][j]=buf;
 
    printf("%i ",graph[i][j]);
    j++;
    if(j==N){i++;j=0;printf("\n");}
     }
    fclose(fin);
    }
1
25.01.2015, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2015, 21:33

Считать все строки из файла и занести данные в RichTextBox
int i = 0; string f = File.ReadAllLines(&quot;Resalt.dat&quot;); string j = f.Split(new char { ',' });...

Занести данные из 2х таблиц в двумерный массив?
Доброго времени суток!) Сложилась такая ситуация. Есть в БД таблица с названием `car` в ней поля...

Считать из файла слова и занести их в массив string-ов
Как считать слова из файла и занести их в массив типа string?


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

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

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