Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Массивы и файлы(как присвоить?)

50K
28 августа 2009 года
Дерево
6 / / 28.08.2009
Я уже опух от этой задачи. Да, она легкая, но я не умею работать с этими файлами. По форуму поползал и нашел что-то подобное, но там нет такого извращения, которое я пытаюсь сделать.

Задание:
Считывание массива из файла. Заполнить одномерный массив данными типа double из текстового файла. Размер массива должен соответствовать объему файла. Массив вывести на экран.
Примечание: Результат работы с данными вывести на экран и в новый файл. Файл с входными данными имеет название INPUT.TXT для текстовых файлов и INPUT.DAT для двоичных. Файл, в который записывается результат, называется OUTPUT.TXT для текстовых файлов или OUTPUT.DAT для двоичных. Для создания файлов с исходными данными можно использовать различные утилиты (например, Binary Viewer). Число элементов при считывании файла определяется его длиной, либо, если этого не определяет алгоритм, двумя сотнями (200). Лучшими решениями считаются те, где нет привязки к количеству элементов в файле. При необходимости можно использовать временный файл для хранения промежуточных результатов.

Я решил не использовать левые программы, а попытался задать через массив рандомные числа в одном файле(INPUT.TXT), а потом присвоить его значения для другого массива, который находится в файле OUTPUT.TXT и вывести значения. Но тут я и завис, так как не понимаю как присвоить значения одного массива к другому. Код:

Код:
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <stdlib.h>
#define symbolininput  100

void main()
{
 clrscr();
 double *a;  /* massive for random numbers in input */
 double *b;  /* massiv for print */
 int i,j;

 FILE* input_f = fopen("INPUT.TXT", "w+");
 if(input_f == NULL)
  {
        printf("\nError! File don't open for writing");
        return;
  }
 randomize();
 a=(double*)malloc(sizeof(double)*symbolininput);
 for(i=0; i<=symbolininput; i++)
  {
       a=random(200)-100;
       fprintf(input_f,"%lf",a);
  }

 fclose(input_f);

 input_f = fopen("INPUT.TXT", "r");
 if(input_f == NULL)
  {
        printf("\nError! File don't open for writing");
        return;
  }

 FILE* out_f = fopen("OUTPUT.TXT","w+");
 if(out_f == NULL)
  {
        printf("\nError! File don't open for writing");
        return;
  }

 b=(double*)malloc(sizeof(double)*symbolininput);

 И тут я начинаю заниматься фигней и пишу следующее:
for(j=0; j==i; j++)
 {
       b[j]==a;
 }

 for(j=0; j<symbolininput; j++)
  {
        printf("b[%d]=\n",j, b[j]);
  }
 fclose(input_f);
 fclose(out_f);
 free (a);
 free (b);
 while(!kbhit());
}


Прошу строго не судить, но я просто первую задачу делаю с этими файлами.
Подскажите, пожалуйста. Borland C++ ver.3.1

Пока я это писал... я вдруг понял.. какое я дерево.. Ведь если я задал рандом и спринтефил, то я сейчас могу просто считать те данные, но один фиг... я не знаю как это сделать.
50K
28 августа 2009 года
Дерево
6 / / 28.08.2009
Всем спасибо.

Код:
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <stdlib.h>
#define symbolininput  100

void main()
{
 clrscr();
 double *a;  /* massive for random numbers in input */
 double *b;  /* massiv for print */
 int i,j;

 FILE* inputf = fopen("INPUT.TXT", "w+");
 if(inputf == NULL)
  {
        printf("\nError! File don't open for writing");
        return;
  }
 randomize();
 a=(double*)malloc(sizeof(double)*symbolininput);
 for(i=0; i<=symbolininput; i++)
  {
       a=random(200)-100;
       fprintf(inputf,"%lf\n",a);
  }

 fclose(inputf);

 inputf = fopen("INPUT.TXT", "r");
 if(inputf == NULL)
  {
        printf("\nError! File don't open for writing");
        return;
  }


 FILE* outf = fopen("OUTPUT.TXT","w+");
 if(outf == NULL)
  {
        printf("\nError! File don't open for writing");
        return;
  }

 b=(double*)malloc(sizeof(double)*symbolininput);
 for( j=0; j<i; j++)
  {
        fscanf(inputf,"%lf", &b[j]);
        fprintf(outf,"%lf", b[j]);
        printf("\nb[%d]= %lf",j, b[j]);
  }

 fclose(inputf);
 fclose(outf);
 free (a);
 free (b);
 while(!kbhit());
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог