|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
File of struct
Ragazzi dovrei creare un file di struct(o record)
Volevo sapere l'istruzione per stampare all'interno del file il record d'appoggio, ho provato con f1<<rubr; ma mi dice error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'struct id' (or there is no acceptable conversion) il file è di testo: fstream f1; .... .... f1.open("text.txt",ios::out); ... ... f1<<rubr; f1.close(); perchè? |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
ho provato cosi:
FILE *stream = fopen("miofile.txt","w"); ... ... fprintf(stream,rubr.nome); F1.CLOSE(); funziona pero' devo stampare ogni volta campo per campo... io invece cercavo qualche comando che stampasse tutto il record direttamente. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Per scrivere usa la funzione
fwrite |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
scrivi con fwrite e per leggere usa fread
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
Ok funziona pero' solo con vettori di record, se utilizzo solo record(struct) non funziona:
{ printf("Inserisci Nome"); gets(rub.nome); printf("Inserisci Numero "); gets(rub.num); printf("Inserisci cell "); gets(rub.cell); printf("Inserisci Indirizzo"); gets(rub.indirizzo.indiri); printf("Inserisci Numero civico "); gets(rub.indirizzo.n); fwrite(rub,1,100,stream); i++; } Probabilmente per i 2 valori centrali 1 e 100 Come faccio? Devo usare per forza un vettore di record per usare fwrite? |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
fwrite (&rub, sizeof(rub), 1, stream);
così si salva una variabile di tipo struttura ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
Ok Grazie
xò nn mi spiego una cosa normalmente dovrei usare: fwrite (rub,1,100,stream) come mi hai scitto tu invece: fwrite (&rub, sizeof(rub), 1, stream); cioè la grandezza massima della struttura, e la dimensione massima di un elemento si scambiano di posto nel secondo caso come mai? Spero di essere stato chiaro |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
what?? usa sempre sizeof per calcolare la grandezza della struttura dati mai metterci i valori calcolati da te.
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
il funzionamento di fwrite è questo...
struct X ciao[n]; fwrite (ciao,n,sizeof(struct X),stream); Cioè il principio dei due parametri è: Scrivi n elementi, ed ogni elemento è grande sizeof(struct X). e quindi scrivere fwrite (ciao,n*sizeof(struct X),1,stream); è la sessa cosa. infatti per capire quanti byte vengono scritti devi appunto moltiplicare i due parametri. Ciao ..... |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Jan 2005
Messaggi: 199
|
ok ma se ho una struttura del genere:
struct id { char nome[15]; char cognome[15]; char num[15]; char cell[15]; indiriz indirizzo; }rubrica; e quando carico la struttura nel file non conosco il numero di elementi (n) da caricare come faccio?metto solo sizeof(rub)? La mia funzione di caricamento infatti si fermerà quando cognome sarà uguale a "menu" . forse se faccio cosi:fwrite(&rub,sizeof(rub),sizeof(rub),stream); dovrebbe andare bene, che dite? Ultima modifica di gio84 : 25-02-2005 alle 14:23. |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:26.



















