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

Записать данные из файла в матрицу - C++

Восстановить пароль Регистрация
 
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
04.04.2012, 17:47     Записать данные из файла в матрицу #1
Кому не сложно, посмотрите, пожалуйста. Идей совсем нет.
Дан текстовый файл (до 10000 символов). Нужно записать его в квадратную матрицу. Кол-во символов я посчитала, память для матрицы выделила, а как матрицу заполнить не знаю...

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
int main()
{
    FILE *f;
    char txt[10][10];
    int i=0, t=0; 
    int j=0, k=0;
    double v, z;
    f=fopen("text.txt", "rt");
   
    do 
    { 
        fgets (txt[i],50,f);
        txt[i][strlen(txt[i]) - 1]='\0';
         k=k+strlen(txt[i]);                 //определяем количество символов в файле
        i++;         
      
    }
    while (! feof(f));
    i--;
 
    v=sqrt(k);                        
    z=ceil(v);                      //определяем размер матрицы
    printf ("%f", z);
   
   for (j=0;j<i;j++) 
    printf ("%s\n", txt[j]); 
    printf ("%d\n", k); 
        t=z;
     char **a= new char* [t];         //выделение памяти
     for (i=0; i<t; i++)
     a[i]=new char [t];
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
04.04.2012, 18:05     Записать данные из файла в матрицу #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
FILE * file;
int n = 0;
int m = 0;
char c[100][100]; // массив 
 
file = fopen( "file.txt", "r" );
 
do
{
    if( m == 100 ) { n +=1; m = 0; }
    c[n][m] = fgetc( file ); // n-й символ символ массива
    m ++;
}
while ( n != 100 );
 
fclose( file );
Добавлено через 9 минут
Квадратную?
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
04.04.2012, 20:49  [ТС]     Записать данные из файла в матрицу #3
Цитата Сообщение от programina Посмотреть сообщение
Квадратную?
да, квадратную
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
04.04.2012, 21:02     Записать данные из файла в матрицу #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
FILE * file;
int n = 0; // по вертикали
int m = 0; // по горизонтали
char c[100][100]; // квадратная матрица 100х100
 
file = fopen( "file.txt", "r" );
 
do
{
   if( m == 100 ) { n +=1; m = 0; } // если 1-я строка матрицы заполнена переходим на след. строку и т.д.
   c[n][m] = fgetc( file );
   m ++;
}
while ( n != 100 );
 
fclose( file );
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
04.04.2012, 22:17  [ТС]     Записать данные из файла в матрицу #5
programina, спасибо большое!!!
ПаЗитиФкА
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 51
10.04.2012, 20:31  [ТС]     Записать данные из файла в матрицу #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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
int main()
{
    FILE *f;
    char txt[10][10];
    int i=0, t=0; 
    int j=0, k=0;
    double v, z;
    f=fopen("text.txt", "rt");
   
    do 
    { 
        fgets (txt[i],50,f);
        txt[i][strlen(txt[i]) - 1]='\0';
         k=k+strlen(txt[i]);               //Г±Г·ГЁГІГ*ГҐГ¬ êîëè÷åñòâî ñèìâîëîâ Гў ГґГ*éëå
        i++;
      
    }
    while (! feof(f));
    i--;
 
    v=sqrt(k);
    z=ceil(v);
    printf ("%f", z);            //Г°Г*çìåðГ*îñòü Г*îâîãî Г¬Г*Г±Г±ГЁГўГ*
   
   for (j=0;j<i;j++) 
    printf ("%s\n", txt[j]); 
    printf ("%d\n", k); 
        t=z;
     char **a= new char* [t];
     for (i=0; i<t; i++)
     a[i]=new char [t];                //âûäåëåГ*ГЁГҐ ГЇГ*ìÿòè ïîä Г¬Г*òðèöó
    
    fseek(f,0,SEEK_SET);              //ГіГЄГ*Г§Г*òåëü Г*Г* Г*Г*Г·Г*ëî ГґГ*éëГ*
     
     int n=0, m=0;
     do
    {
   if( m == t ) { n=n+1; m = 0; } // åñëè 1-Гї ñòðîêГ* Г¬Г*òðèöû Г§Г*ïîëГ*ГҐГ*Г* ïåðåõîäèì Г*Г* ñëåä. ñòðîêó ГЁ ГІ.Г¤.
   a[n][m] = fgetc( f );
   m ++;
    }
    while ( n != t  );
     
     for (n=0; n<t; n++)
      for (m=0; m<t; m++)
      printf ("%c", a[n][m]);
      getch(); 
}
Вот что получилось, но работать почему-то не хочет, хотя ошибок при компиляции не выдает

Добавлено через 22 часа 50 минут
up)))
Yandex
Объявления
10.04.2012, 20:31     Записать данные из файла в матрицу
Ответ Создать тему
Опции темы

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