Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2010, 18:36   #1
jimmywoodes
 
Регистрация: 24.01.2010
Сообщений: 9
Вопрос Работа с файлами. Си

Запускаю и ничего не происходит. Ошибок тоже нет.
Посмотрите плз, кто шарит. Реально не могу понять в чем дело.
Код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<alloc.h>
void rashet(int, int,int,int,int, double **);
void open(int, int,int,int,FILE*, double **);
void vivod(int, int,int,int, double**);
int main() {
int i=0,j=0,n=8,m=5,c;
double **mas;
FILE *wtf;
clrscr();
mas=(double**)malloc(n*sizeof(double *));
for (i=0; i<n; i++)
mas[j]=(double*)calloc(m,sizeof(double));
open(i,j,n,m,wtf,mas);
vivod(i,j,n,m,mas);
rashet(i,j,n,m,c,mas);
getch ();
return 0;
}
void open(int i, int j,int n,int m,FILE*wtf, double **mas){
if((wtf=fopen("text.txt", "r"))==NULL)
printf("Fail\n");
else{
for(i=0;i<n;i++){
for(j=0;j<m;j++){
fread(&mas[i][j],sizeof(mas[i][j]),1,wtf);}}}
}
void vivod(int i,int j,int n,int m, double **mas){
for (i=0;i<n;i++){
 for (j=0;j<m;j++)
printf("%7.3lf  ", mas[i][j]);
printf("\n"); }
}
void rashet(int i, int j,int n,int m,int c,double **mas){
for (i=0;i<n;i++){
c=1;
 for (j=0;j<m;j++)
if(mas[i][j]<0)
c=0;
if(c)
printf("Stroka %d ne sodergit otrecatelnix elementov\n",i);}
}
заранее спс

Последний раз редактировалось jimmywoodes; 27.01.2010 в 20:34.
jimmywoodes вне форума Ответить с цитированием
Старый 27.01.2010, 20:19   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

по-моему вы забыли выделить память под массив
counter вне форума Ответить с цитированием
Старый 27.01.2010, 20:34   #3
jimmywoodes
 
Регистрация: 24.01.2010
Сообщений: 9
По умолчанию

память выделил, но все равно 0 реакции(
jimmywoodes вне форума Ответить с цитированием
Старый 28.01.2010, 09:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
jimmywoodes
Во-первых: Где файл text?
Во-вторых: Предлагаю отказаться от динамического массива, раз ты уж все равно указываешь его размер константами:
Код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#include<alloc.h>
void rashet(int, int,int,int,int);
void open(int, int,int,int,FILE*);
void vivod(int, int,int,int);

const int  n=8,m=5;
double mas[n][m];

int main() {
	int i=0,j=0,c;
		FILE *wtf;
		clrscr();
			open(i,j,n,m,wtf);
			vivod(i,j,n,m);
			rashet(i,j,n,m,c);
		getch ();
	return 0;
}
void open(int i, int j,int n,int m,FILE*wtf){
if((wtf=fopen("c:\\temp\\text.txt", "r"))==NULL)
printf("Fail\n");
else{
for(i=0;i<n;i++){
 for(j=0;j<m;j++){
  fread(&mas[i][j],sizeof(mas[i][j]),1,wtf);}}}
}

void vivod(int i,int j,int n,int m){
for (i=0;i<n;i++){
 for (j=0;j<m;j++)
printf("%lf  ", mas[i][j]);
printf("\n"); }
}
void rashet(int i, int j,int n,int m,int c){
for (i=0;i<n;i++){
c=1;
 for (j=0;j<m;j++)
if(mas[i][j]<0)
c=0;
if(c)
printf("Stroka %d ne sodergit otrecatelnix elementov\n",i);}
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами dima0268 Общие вопросы C/C++ 1 15.12.2009 17:22
Работа с файлами [MI_nor] Общие вопросы C/C++ 4 08.03.2009 17:50
Работа с файлами cr1mson Общие вопросы C/C++ 7 14.01.2009 22:42
Работа с файлами Maksi Фриланс 4 07.06.2008 11:38