Sto provando a far girare qualche programma in C, che sto studiando per l'università. Fino ad ora tutto ok, vengo dal PHP e sulle basi (eccetto questo) non ci sono stati intoppi.
Con i file invece è una gran rogna.. nel senso che non riesco veramente a farci molto.
Dopo aver finalmente capito in che cartella andavano piazzati i file da far leggere in fase di debug, mi ritrovo con questo programma di prova che va in errore (le librerie sono così numerose perché il programma iniziale era un po' più corposo.. poi a furia di ricevere risultati sbagliati l'ho ridotto per capire dove potrebbe essere l'errore.. con scarsi risultati):
codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
int Id;
char Tipo[16];
int Altezza;
int Larghezza;
int Prezzo;
char Colore[15];
} Mat;
int main () {
Mat m;
FILE *file;
if ((file = fopen("materiali.txt", "r"))==NULL) { printf("Impossibile aprire il file"); }
fscanf(file, "%d ", &m.Id);
fscanf(file, "%16s ", &m.Tipo);
fscanf(file, "%d ", &m.Altezza);
fscanf(file, "%d ", &m.Larghezza);
fscanf(file, "%d ", &m.Prezzo);
fscanf(file, "%15s", &m.Colore);
fclose(file);
printf("%d %s %d %d %d %s", m.Id, m.Tipo, m.Altezza, m.Larghezza, m.Prezzo, m.Colore);
getchar();
}
Il file in questione è molto semplicemente composto in questo modo:
codice:
1 Pavimento 3 4 20 Fucsia
Se provo il programma in debug, mi stampa questo:
codice:
0 \377\3761 10 -1880875008 -1073744480
Grazie Mille!
Paolo