Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение матриц из файла. 
:(
    Опции темы
Mal Hack
Дата 1.5.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 2
Всего: 261



Не для себя надо написать программку в консоли в VS.NET.
Считать матрицы произвольной размерности из файла, разделенные пустой строкой.
Позарез и срочно нужно сделать рабочий код.
Пока имею вот это:
Код
void main()
{
    char    FName_1[127] , FName_2[127];
    char    * c;
    int        * m1 , * m2 , j , i_1 , j_1 , b_1 , i_2 , j_2 , b_2;
    char    str[] = "";

    printf( "Input FileName: " );
    scanf( "%s" , & FName_1 );

    printf( "OutPut FileName: " );
    scanf( "%s" , & FName_2 );

    FILE * f1 , * f2;
    
    f1 = fopen( FName_1 , "rt" );

    if( f1 == NULL )
    {
        printf( "File \"%s\" not found." , FName_1 );
        getch();
        return;
    }

    i_2 = 0;
    j_2 = 0;
    b_2    = 0;

    m2 = ( int * ) malloc( sizeof( int ) );

    while( ! feof( f1 ) )
    {
        j = 0;

        str[0] = 0;
printf("%s\n",str);
        fgets( str , 10 , f1 );
        c = strtok( str , " \t\n" ); 

        while( c != NULL )
        {
        //    printf("%s " , c);
        //    getch();
            sscanf( c , "%d" , & m2[ b_2 ] );
            printf("%d " ,m2[ b_2 ] );;
            //m1[ b ] = ssp( c );
            b_2++;
            j++;
            m2        = ( int * ) calloc( b_2 + 1 , sizeof( int ) );    
            c        = strtok( NULL , " \t\n" );
        }

        i_2++;

        //printf("%d - %d - %d \n",j,j_2,i_2);

        if( j == 0 )
        {
            m1    =    ( int * ) malloc( sizeof( m2 ) );
            m1    =    m2;
            m2    =    ( int * ) malloc( sizeof( int ) );

            i_1    =    i_2;
            j_1 =    j_2;
            b_1    =    b_2;

            i_2 =    0;
            j_2    =    0;
            b_2    =    0;
        }
        else if( j != j_2 && i_2 > 1 )
        {
            printf( "No right matrix." );
            getch();
            //return;
        }
        else
        {    j_2 = j;    }
    }

    int i;
    for( i = 0;i<b_1;i++)
    {printf( "%d " , m1[ i ] );}
    printf("\n");
    for( i = 0;i<b_2;i++)
    {printf( "%d " , m2[ i ] );}

    

//    i = 1;
    /*
    while( fscanf( f1 , "%d" , & m1[ i - 1 ] ) && ! feof( f1 ) )
    {
        printf( "%d" , m1[ i - 1 ] );
        getch();
        i++;
        m1 = ( int * ) calloc( i , sizeof( int ) );
    }
    */

    fclose( f1 );

    getch();
}

Но, ушами чую, можно проще. Подскажите чтоли как... Может функции есть какие-ть... 
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.