Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-05-2008, 22:01   #1
Alex88na
Member
 
Iscritto dal: Dec 2005
Messaggi: 135
[C++] Problema con il salvataggio in un file con struct con campo string

Salve, se dichiaro un campo di una struct di tipo stirng non ho nessun problema, i problemi nascono quando devo caricare dei struct con campi di tipo string da un file binario in un array, vi posto il codice:

Codice:
#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
 
//STRUCT
struct Tpdata{
       int giorno;
       int mese;
       int anno;
};
 
struct Tpsoci{
       char nome[20];
       char cognome[20];
       string indirizzo;
       Tpdata data;
};
 
//PROTOTIPI
void inserimento(Tpsoci &);
 
int main() {
    const int max=100; 
    char nome_file[max];
    int NumSoci;
    Tpsoci socio;
    const int LSoci=sizeof(socio);
 
    cout << "Inserisci il nome del file: "; cin >> nome_file;
    fstream file1;
    file1.open(nome_file, ios::in|ios::out|ios::binary);
    if(!file1){ 
                cout << "Il file non e' stato trovato ed e' stato creato." << endl;
                file1.open(nome_file, ios::in|ios::out|ios::binary|ios::trunc);
                file1.clear();
                cout<<"\nInserisci il numero di soci da salvare: "; cin>>NumSoci;
                cout << "\n\nScrivere sul file"<<endl;
                for(int i=0; i<NumSoci; i++){
                             inserimento(socio);
                             file1.seekp(0, ios::end);
                             file1.write((char*) &socio, LSoci);                           
                }
    }
 
    file1.seekg(0, ios::end); //mi posizione alla fine
    NumSoci=file1.tellg()/LSoci; 
    file1.seekg(0, ios::beg); //mi posizione all'inizio
 
    cout<<"NumSoci: "<<NumSoci<<endl;
    cout<<"\n\nStampa da file\n\n";
    for(int i=0; i<NumSoci; i++){
                 cout<<"Socio numero "<< i+1 <<endl;
                 file1.read((char*) &socio, LSoci);
                 cout << "Nome socio: " << socio.nome 
                      << "\tCognome: " << socio.cognome 
                      << "\tIndirizzo: " << socio.indirizzo
                      << "\tScadenza tessera: " << socio.data.giorno
                      << '/' << socio.data.mese << '/' << socio.data.anno
                      << endl;                                            
    } 
    file1.close();
 
    system("pause");
}
 
 
void inserimento(Tpsoci &socio){
     cout << endl;
     cout << "Inserisci il nome: "; cin >> socio.nome;
     cout << "Inserisci il cognome: "; cin >> socio.cognome;
     cin.ignore();
     cout << "Inserisci l'indirizzo: "; getline(cin, socio.indirizzo);
     cout << "Dati di iscrizione" << endl;
     cout << "Inserisci il giorno: "; cin >> socio.data.giorno;
     cout << "Inserisci il mese: "; cin >> socio.data.mese;
     cout << "Inserisci l'anno: "; cin >> socio.data.anno;
}
Ed ecco gli screen:

Nell'inserimento dei dati nell'array di record e nlla sua stampa non ho problemi:


Chiuso il programma, lo rieseguo ed ecco cosa succede:


Il programma va in crash
Alex88na è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
iPhone Duo, il debutto del pieghevole di...
Atlas 960E SuperPoD, la risposta di Huaw...
IA militare e nucleare: esperti USA e ci...
Dieci mini-reattori nucleari in Europa d...
CONTROL Resonant su PC: Path Tracing, Ra...
ColorOS 17 arriva su circa 90 dispositiv...
GTA VI, il multiplayer potrebbe debuttar...
Aggiornamento KB5002914 rompe Excel: ecc...
Processo Huawei a Brooklyn: l'FBI mostra...
WhatsApp introduce nuovi temi per le cha...
NVIDIA, Google e Emerald AI uniscono le ...
iPhone 18 Pro Max, il test sulla vapor c...
Fine estate in giardino: le proposte sco...
Batterie allo stato solido dietro l'ango...
Gears of War: E-Day raggiunge la fase Go...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v