Разработать и добавить функции записи исходных данных в файл и чтения их из файла - 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, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д