Разработать и добавить функции записи исходных данных в файл и чтения их из файла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здраствуйте всем. Как хорошо что сайт заработал.) Ребята помогите с бинарными файлами 2 дня уже потратил на эту задачу и нечего в нете не нашёл , очень надеюсь на вашу помощь . К заданию разработать и добавить функции записи исходных данных в файл(данные - это матрица n*n) и чтения их из файла(допустим та же матрица). Для задания использовать бинарный файл. Использовать функции работы с файлами языка С. Как быть с бинарным файлом какое расширение должно быть? если .bin то как тогда ввести данные(неужели нулями и единицами?) ребята help pls, вот что я сделал но это текстовый режим(
//zadanie 2_1
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#define N 100
#include <iostream.h>
void vivod(float tran_A[N][N],int n){
for(int i=0;i<n;i++){
   for(int j=0;j<n;j++){
   printf("%7.2f",tran_A[i][j]);
}
   cout<<"\n";
}
}
 
int main() {
char str[50];
    float  A[N][N],tran_A[N][N],fl,min,max,maxcolums;
    int n,i,j,sh=0,sch,temp;
    clrscr();
char *razdel_str=NULL;
FILE *f;
    f= fopen("c:/text1_1.txt", "r");
if (f==NULL){
    printf ("Error! File not found");
    getch();
    return 1;
    }
FILE *f1_1out;
f1_1out=fopen("c:/text1_1out.txt","w");
if (f1_1out==NULL){
printf("Error,file  ne sozdan");
getch();
return 1;
}
cout<<endl;
i=0;
j=0;
printf("pervonachal'nii massiv");
while(!feof(f)){
char *p=fgets (str,sizeof(str),f);
j=0;
for ( razdel_str=strtok(str," ");razdel_str!=NULL;razdel_str=strtok(NULL," ")){
double temp = atof(razdel_str);
A[i][j]=float(temp);
j++;
}
i++;
}
cout<<"\n razmernost' massiva = "<<i<<endl;
n=i;
cout<<endl;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%7.2f ",A[i][j]);
}
cout<<endl;
}
 
min=A[0][0];
for(i=0;i<n;i++){
   for(j=0;j<n;j++){
      if(A[i][j]<min)
      min=A[i][j];
      }
}
printf("\n min= %7.2f",min);
max=A[0][0];
for(i=0;i<n;i++){
   for(j=0;j<n;j++){
      if(A[i][j]>max)
      max=A[i][j];
   }
}
printf("\nmax element vsei matricy = %5.2f\n",max);
 
for(j=0;j<n;j++){
   maxcolums=A[0][i];
   for(i=0;i<n;i++)
      if (A[i][j]>maxcolums) maxcolums=A[i][j];
      if (maxcolums==max) sh++;
 
   printf("\nmax elemant stolbtsa %d = %5.2f",j,maxcolums);
 
}
printf("\nkol-vo sovpadenii  = %d\n",sh);
if(sh==n){
cout<<"\n k glavnoi diagonali dobavili min element\n";
 for(i=0;i<n;i++){
   for(j=0;j<n;j++){
     if(i==j) A[i][j]=A[i][j]+min;
     printf("%5.2f",A[i][j]);
 
   }
   cout<<"\n";
 }
 cout<<"\ntransponirovanaya matritsa\n\n";
 for(i=0;i<n;i++){
    for(j=0;j<n;j++){
    tran_A[j][i]=A[i][j];
    }
 
 }
  cout<<"\n";
vivod(tran_A,n);
for(int i=0;i<n;i++){
   for(int j=0;j<n;j++){
 
fprintf(f1_1out,"%7.2f",tran_A[i][j]);
}
  fputs("\n",f1_1out);
}
}
else{
fprintf(f1_1out,"Ne vse max elementy stolbtsa matricy sovpadayout c max elemetom matricy , \n ne transponiruem matricy");
printf("Ne vse max elementy stolbtsa matricy sovpadayout c max elemetom matricy ,\n ne transponiruem matricy");
}
getch();
return 0;
}

Решение задачи: «Разработать и добавить функции записи исходных данных в файл и чтения их из файла»

textual
Листинг программы
f= fopen("c:/text1_1.txt", "r");// текстовый режим
f= fopen("c:/text1_1.txt", "rb");// бинарный режим

Объяснение кода листинга программы

  1. В начале кода подключаются заголовочные файлы и стандартные библиотеки.
  2. Затем определяются функции main() и func(), которые являются точками входа в программу.
  3. Внутри функции main() открывается файл c:/text1_1.txt с помощью функции fopen() в текстовом режиме (первый вызов) и в бинарном режиме (второй вызов).
  4. После этого выполняются действия, связанные с записью и чтением данных из файла.
  5. В конце программы закрывается файл с помощью функции fclose().
  6. Функция main() возвращает 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы