Разработать и добавить функции записи исходных данных в файл и чтения их из файла - 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");// бинарный режим
Объяснение кода листинга программы
- В начале кода подключаются заголовочные файлы и стандартные библиотеки.
- Затем определяются функции main() и func(), которые являются точками входа в программу.
- Внутри функции main() открывается файл
c:/text1_1.txt
с помощью функции fopen() в текстовом режиме (первый вызов) и в бинарном режиме (второй вызов). - После этого выполняются действия, связанные с записью и чтением данных из файла.
- В конце программы закрывается файл с помощью функции fclose().
- Функция main() возвращает 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д