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;
}
Stampa a video soli zeri
- vaeVictis
- Imperturbabile Insigne

- Messaggi: 4703
- Iscrizione: venerdì 27 luglio 2012, 17:58
- Desktop: Gnome
- Distribuzione: Ubuntu 20.04 64bit
Re: Stampa a video soli zeri
Edita il messaggio e usa il tag per il codice.
Altrimenti il tuo messaggio risulta incomprensibile.
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.»
«I fear not the man who has practiced 10000 kicks once,
but I fear the man who has practiced one kick 10000 times.»
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti