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