PDA

View Full Version : [C] problemi in C


mirkul
14-05-2012, 23:14
SAlve sono nuovo del forum e spero di non aver sbagliato nulla nel scrivere questo thread!

vi posto la parte di codice che ho scritto e già da qui non riesco a capire dove ho sbagliato!

/*inclusione delle librerire*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*inclusione delle variabili*/
#define MAX_LUNG_CODICE 7
#define MAX_LUNG_NOME 100

/*definizione della main*/
int main (void)
{
/*dichiarazione delle variabili*/

int i, k, stud_tot, matricola, esami_tot, voto_esame;
char codice_esame [MAX_LUNG_CODICE], nome_esame [MAX_LUNG_NOME];
FILE *file_studenti;


file_studenti = fopen("studenti.txt", "r");

/*acquisisco i dati da file*/

fscanf(file_studenti, "%d", &stud_tot);
printf("il numero degli studenti totali è: %d", stud_tot);

/*ciclo*/

i = 0;
while (i < stud_tot)
{
fscanf(file_studenti, "%d", &matricola);
printf("numero di matricola: %d", matricola);
fscanf(file_studenti, "%d", &esami_tot);
printf("il numero di esami sostenuti sono: %d", esami_tot);

k = 0;
while(k < esami_tot)
{
fscanf(file_studenti, "%s%s%d", codice_esame[], nome_esame[], &voto_esame );
printf("%s %s %d", codice_esame, nome_esame, voto_esame );
k++;
}

i++;
}
fclose(file_studenti);
return 0;
}

l'esempio del tipo di file dovrebbe essere
3 /*std_tot*/
11244 /*matricola*/
5 /*esami_tot*/
CZ001 matematica 8 /*codice nome voto*/
CZ002 geografia 6
. . .
...
.
12234
innanzitutto, dove ho sbagliato in questo codice, che non mi parte il programma?

quello che vorrei fare io è di prendere dei dati che ho inserito in un file e metterli in una struttura dati, ( in un albero R/N ).

allora io avrei pensato cosi:
leggere da file i miei dati i quali la prima riga corrisponde a stud_tot, la seconda a matricola, la 3° a esami_tot, la 4°codice_esame, nome_esame, voto_esame;

ed ognuna di queste righe deve corrispondere ad un dato che inserirò nella mia struttura!

ho provato a consultarli in vari libri ecc, ma non sono riuscito a trovare nulla!!!

grazie in anticipo a tutti quanti!

karch_kiraly
15-05-2012, 07:03
Hai provato a far partire il debugger mettendo un breakpoint nella prima riga dopo la main?

lorenzo001
15-05-2012, 11:36
In che senso "non parte" ?

Non compila neanche ? Hai dei messaggi d'errore ?

Cosa usi per compilare ?

mirkul
22-05-2012, 11:02
ciao grazie delle risposte e scusate per la lentezza nel rispondere, ma ho risolto da solo!

però ancora devo capire una cosa:
come faccio ad inserire i miei dati in una struttura dati?

karch_kiraly
23-05-2012, 07:01
Per struttura dati cosa intendi? Un vettore, una struct...
In ogni caso l'elemento base e' quello della semplice assegnazione.