Stampa a video soli zeri

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
sacarde
Prode Principiante
Messaggi: 174
Iscrizione: giovedì 31 agosto 2006, 10:02

Stampa a video soli zeri

Messaggio da sacarde »

Salve a tutti! Sono nuova sul form e ho iniziato da poco a lavorare con Ubuntu.. Sto riscontrando alcuni problemi con la lettura file. Riesco a compilarlo senza errori,ma puntualmente non riesco a stampare a video niente,se non zero. E mi succede per tutti gli esercizi che faccio: niente errori di sintassi magari, ma qualsiasi sia la richiesta Ubuntu stampa a video 0. Potreste aiutarmi perfavore?Inserisco solo alcuni punti

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXD 1024
#define MAX 20
#define DIM 2

struct studio {
char tipo_fase[MAX];
int minuto_inizio;
};
//----LETTURA FILE------

struct studio *leggiFile(char *path,int *l) {
struct studio *r;
FILE *f;
int i=0;
int k=1;
char buffer[MAXD];

r=malloc(k*DIM*sizeof(struct studio));
if (r==NULL) {
puts("Errore allocazione memoria");
return 0;
}

f=fopen("esempio.txt","r");
if (f==NULL) {
puts("Errore apertura file!");
return 0;
}

while (fgets(buffer,sizeof(buffer),f)!=NULL){
sscanf(buffer,"%s %d",r.tipo_fase,&r.minuto_inizio);
i++;
if (i>=k*DIM){
k++;
r=realloc(r,DIM*k*sizeof(struct studio));
if (r==NULL) {
puts("Errore prima allocazione");
return 0;
}
}
}
r=realloc(r,i*sizeof(struct studio));
if (r==NULL) {
puts("Errore seconda allocazione");
return 0;
}
return r;
*l=i;
fclose(f);
}
//---STAMPA RIGHE----
void StampaRighe (struct studio *r,int l) {
puts("[RIGHE]");
int i;
for (i=0;i<l;i++) {
printf("%s %d",r.tipo_fase,r.minuto_inizio);
}
}
//PUNTO 2--------
void Sessioni(struct studio *r,int l){
int i;
int conto=0;

for (i=0;i<l;i++) {
if (r.tipo_fase=="end"){
conto++;
}
}
puts("[NUMERO SESSIONI E DURATA]");

for (i=0;i<l;i++) {
if (r.tipo_fase=="end"){
printf("%d %d\n", conto,r.minuto_inizio) ;
}
}


}
`
//------PUNTO 3-----
`void MainSleep(struct studio *r,int l){
int i;


//considero main sleep la prima sessione ,controllo la prima e la prima dopo l'end
puts("[MAIN_SLEEP]");
for (i=0;i<l;i++) {
if (r.tipo_fase=="end" ) {
printf("%d", r[i+1].minuto_inizio);
} printf("%d",r[0].minuto_inizio);
}
}

//----- FUNZIONE MAIN-----

int main(int argc,char **argv) {
struct studio *r;
int l;

if (argc>2) {
puts("Errore passaggio parametri!");
return 0;
}



leggiFile(argv[1],&l);

StampaRighe(r,l);

puts("[RIGHE]");
printf("%d",l);

Sessioni(r,l);
MainSleep(r,l);

free(r);
return 0;
}
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4703
Iscrizione: venerdì 27 luglio 2012, 17:58
Desktop: Gnome
Distribuzione: Ubuntu 20.04 64bit

Re: Stampa a video soli zeri

Messaggio da vaeVictis »

Edita il messaggio e usa il tag per il codice.
Altrimenti il tuo messaggio risulta incomprensibile.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti