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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 20:34   #1
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию Читать фаил и регистрировать данные в таблицу или матрицу

Помогите пожалуйста разобраться с проблеммой. Нужно написать функцию, которая бы читала фаил и его содержимое записывала в таблицу и матрицу. Я написала функцю, но она не работает. Помогите найти ошибку.Я исползовала библиотеку blitz++ . Прошу не зоострять на неи внимание. Мне интересно узнать, правельный ли алгоритм я написала или нет!
Код:
#define CMAX 100
#define LMAX 100
class Gibbse{
public:
void chargethermo(char*);}

void Gibbse::chargethermo(char *file_name)
{
  FILE *fp;
  double nombre;
  int n=800; char szbuff[n];int ligne;

  Array <double,1> Tr(10);
  Array <double,2> TabGHSER(LMAX,CMAX);
  Array <double,2> TabL1(LMAX,CMAX);
  Array <double,2> TabL2(LMAX,CMAX);
  int i=0,j;
  int i1=0,j1;
  int i2=0,j2;
  fp=fopen(file_name,"r");
if (!fp){cout<<"ne peut lire le fichier '"<<file_name<<"'"<<endl;}
 
while(!feof(fp)){
  fgets(szbuff,n,fp);
  for (ligne=0; ligne<10;ligne++)
  Tr(ligne)=fscanf(fp,"%lf",&nombre);
 
while(i<LMAX){
  j=0; fgets(szbuff,n,fp);
// On lit les йlйments et on les stocke dans le tableau TabGHSER, TabL1, TabL2
  while(j < CMAX){
  TabGHSER(i,j) = fscanf(fp,"%lf",&nombre);j++;}i++;}

while(i1<LMAX){
  j1=0; fgets(szbuff,n,fp);
  while(j1 < CMAX){
  TabL1(i1,j1) = fscanf(fp,"%lf",&nombre);j1++;}i1++;}

while(i2<LMAX){
  j2=0; fgets(szbuff,n,fp);
  while(j2 < CMAX){
  TabL2(i2,j2) = fscanf(fp,"%lf",&nombre);j2++;}i2++;}}
  fclose(fp);
 cout<<Tr<<endl;
}

Последний раз редактировалось MaTBeu; 25.03.2009 в 23:02.
ciaonataha вне форума Ответить с цитированием
Старый 25.03.2009, 20:36   #2
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

И еще. Сам текстовый файл представляет следующее.
//l'intervalle de la temperature pour ferrite
300. 1000. 1200. 6000.
//matrice GHSERp pour ferrite
2.1 -11.3 0. 3.9 0. 0. 1. 0. 0. 0. 0.
-1 0 9-4 0 0 0 0 0 -12 0......
..............................с неограниченним набором элементов. Будет заполняться Python
//matrice L1 pour ferrite (Fe-Cr-C/Va)
1 2 0 -1 0 0 -2 0 0 0 0
1 0 -1 0 1 0 1 0 0 0 0......
//matrice L2 pour ferrite (C-Va-Fe/Cr)
1 2 0 0 0 0 -2 0 0 0 0
1 0 -1 0 1 0 1 0 0 0 0....
ciaonataha вне форума Ответить с цитированием
Старый 26.03.2009, 01:51   #3
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

первая ошибка

вместо
Код:
char szbuff[n]
нужно
Код:
char szbuff=new char[n]
counter вне форума Ответить с цитированием
Старый 26.03.2009, 10:59   #4
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Спасибо!!!
ciaonataha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные с DBLookupComboBox в таблицу rainbow БД в Delphi 2 17.10.2008 12:18
как перенести данные с листа excel в текстовой фаил? sergey34 Microsoft Office Excel 6 02.12.2007 22:59
Не сохраняет данные в таблицу! frai БД в Delphi 14 15.09.2007 18:58
Программно читать данные из БД Access Заяц Microsoft Office Access 4 10.06.2007 00:46