Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 24.01.2014
Сообщений: 51
1

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

16.05.2014, 18:44. Просмотров 1300. Ответов 7
Метки нет (Все метки)


Здраствуйте всем. Как хорошо что сайт заработал.) Ребята помогите с бинарными файлами 2 дня уже потратил на эту задачу и нечего в нете не нашёл , очень надеюсь на вашу помощь . К заданию разработать и добавить функции записи исходных данных в файл(данные - это матрица n*n) и чтения их из файла(допустим та же матрица). Для задания использовать бинарный файл. Использовать функции работы с файлами языка С.
Как быть с бинарным файлом какое расширение должно быть? если .bin то как тогда ввести данные(неужели нулями и единицами?)
ребята help pls, вот что я сделал но это текстовый режим(
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
//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;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2014, 18:44
Ответы с готовыми решениями:

Реализовать структуру User и написать функции записи в бинарный файл и чтения из бинарного файла
Нужно создать двоичный файл структур. Выдает кучу ошибок, помогите исправить, пожалуйста #include...

Напишите функции записи данных в файл, чтения данных из файла
Файл dаte.in содержит четырех значное число на каждой строке. Напишите функции записи данных в...

Создание файла для записи и чтения, запись в файл данных
Написать простейшую программу, которая для своей работы использует системные вызовы...

Добавить строки, которые позволяют выполнить чтение исходных данных из файла и запись результатов в файл
добавить в листинг програми Program; var x : array of integer; y : array of integer; ...

7
Модератор
Эксперт по электронике
8356 / 6202 / 834
Регистрация: 14.02.2011
Сообщений: 21,552
16.05.2014, 18:47 2
Лучший ответ Сообщение было отмечено viifelso как решение

Решение

Цитата Сообщение от viifelso Посмотреть сообщение
f= fopen("c:/text1_1.txt", "r");
для бинарного во флагах добавляется буква b
C
1
2
f= fopen("c:/text1_1.txt", "r");// текстовый режим
f= fopen("c:/text1_1.txt", "rb");// бинарный режим
1
0 / 0 / 1
Регистрация: 24.01.2014
Сообщений: 51
16.05.2014, 18:53  [ТС] 3
и всё?
т е никаких расшериний .bin не нужно? Значит можно использовать тот же текстовый файл?
0
Будущее рядом
101 / 100 / 48
Регистрация: 06.03.2014
Сообщений: 342
16.05.2014, 19:01 4
viifelso, они различаются не расширениями, а способом представления в них информации
1
0 / 0 / 1
Регистрация: 24.01.2014
Сообщений: 51
16.05.2014, 19:04  [ТС] 5
спасибо вам огромное
0
Модератор
Эксперт по электронике
8356 / 6202 / 834
Регистрация: 14.02.2011
Сообщений: 21,552
16.05.2014, 19:05 6
Цитата Сообщение от viifelso Посмотреть сообщение
т е никаких расшериний .bin не нужно? Значит можно использовать тот же текстовый файл?
можно открыть один и тот же файл,но не одновременно, в разных режимах
вот здесь посмотри
http://comp-science.narod.ru/Progr/file_c.htm
http://sernam.ru/c_52.php
0
0 / 0 / 1
Регистрация: 24.01.2014
Сообщений: 51
16.05.2014, 19:27  [ТС] 7
C
1
2
3
4
5
6
7
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);
}
сделал так как сказал ValeryS, поставил бинарный режим всё ок ,только в ответе в text1_1out.txt выдаёт всё в одну строку!
fprintf -тоже не помогает!
можно решить это проблему ?

Добавлено через 12 минут
всё проблему решил вот так
fputs("\r\n",f1_1out);
отличный сайт
0
Модератор
Эксперт по электронике
8356 / 6202 / 834
Регистрация: 14.02.2011
Сообщений: 21,552
16.05.2014, 22:04 8
Цитата Сообщение от viifelso Посмотреть сообщение
всё проблему решил вот так
fputs("\r\n",f1_1out);
все правильно в текстовом режиме "Возврат каретки"(\r)подставляется автоматически под "перевод строки" (\n)
а бинарном нужно ручками

Добавлено через 1 минуту
перемещает позицию печати в крайнее левое положение. В текстовых файлах в Mac OS (но не Mac OS X) разделяет строки. В CP/M, MS-DOS и Microsoft Windows для разделения строк в текстовых файлах используется сочетание символов \r\n.
отсюда
http://ru.wikipedia.org/wiki/Управляющие_символы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2014, 22:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Добавить в программу две функции: для считывания и записи данных в файл в бинарном режиме
Усовершенствовать программу дополнив две функции: для считывания и записи данных в файл в бинарном...

Организация записи в файл и чтения атрибутов файла
Доброго времени суток на циферблате Друзья понимаешь!!!! КАК ОРГАНИЗОВАТЬ ЗАПИСЬ В ФАЙЛ И ЧТЕНИЕ...

Класс для чтения из файла, записи в файл
Появился вопрос по с++. Создал класс, который может читать и записывать в файл. деструктор класс ...

Класс для записи в файл и чтения из файла
Здравствуйте, у меня вот возникла такая проблема при выполнении домашнего задания: надо создать два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.