Scusate non sono sicuro di aver fatto un buon lavoro:
nell'header "ohlc.h" dichiaro un nuovo tipo detto ohlc come segue
codice:
#IFNDEF __OHLC_H
#DEFINE __OHLC_H
typedef struct myohlc{
float open;
float high;
float low;
float close;
}ohlc;
#ENDIF
e nel source voglio acquisire dei dati da file che passo da riga di comando (argv[1])
i dati sono scritti in 4 colonne e ciascuna riga contiene in seguenza open, high, low, close
è corretto il seguente source per cerare un array di struct del ripo ohlc che contenga i dati acquisiti dal file txt?
(ho usato lo stream del stdio perchè ancora sto capendo come funzionano le stream class del C++)
codice:
#IFNDEF __OHLC_CPP
#DEFINE __OHLC_CPP
#include <iostream>
#include <stdio.h>
#include <cmath>
#include "ohlc.h"
using namespace std;
int main(int argc, char **argv){
int N, i=0;
FILE *stream;
//ohlc --> typdef struct ohlc presente in ohlc.h, size = sizeof(float)*4
ohlc* dati;
cout << "inserire numero barre OHLC da acquisire: ";
cin >> &N;
dati = (ohlc*)calloc(N, sizeof(ohlc));
//passo dati da terminale
stream = fopen( "argv[1]", "r");
//acquisisco file da argv[1]
while( stream != NULL){
scanf = ("%f%f%f%f", dati[i]->open, dati[i]->high, dati[i]->low, dati[i]->close));
i++;
}
fclose(stream);
grazie mille
p.s. penso ci sia un problema con l'header....cioè praticamente eseguendo typdef in quel modo non ho capito se il nuovo tipo è myohlc o ohlc??? l'errore che mi dà è che -> operand in dati[i]-> non è un puntatore myohlc?