PROBLEMA Programmazione a File in C++

GhostCrusher

Nuovo Utente
2
0
C++:
#include<iostream>
#include<fstream>
#include<string.h>

using namespace std;

string scelta = "";


void inserimento();
void lettura();

struct Profilo_Giocatore {

    string nome;
    string danni;
    string vita;
    string tempo_di_sopravvivenza;
    string KDK;

};

Profilo_Giocatore a;

int main() {

    while (scelta == "0" || scelta == "E" || scelta == "e") {

        cout << "\n\tMenu'dati Apex\n";
        cout << "\n\t Inserimento dati Apex(I/i)";
        cout << "\n\t Lettura dati(L/l)";
        cout << "\n\t Chiudi Programma (0/e/E)\n";

    };

    if (scelta == "I" || scelta == "i") {

        void inserimento();
    };

    if (scelta == "L" || scelta == "l") {

        void lettura();
    };
    
}

void inserimento() {
    fstream dati_pers;

    dati_pers.open("dati apex.txt", ios::out | ios::app);

    system("cls");

    cout << "/INSERIMENTO DATI APEX PARTITA/";
    cout << "inserisci la vita persa post game :";
    cin >> a.vita;
    cout << "inserisci i danni fatti agli avversari :";
    cin >> a.danni;
    cout << "inserisci il tempo di sopravvivenza :";
    cin >> a.tempo_di_sopravvivenza;
    cout<<"inserisci il KDK (Kill/Death/Knock Out) :";
    cin >> a.KDK;

};

void lettura() {
    fstream dati_pers;

    dati_pers.open("dati apex.txt",  ios::in);
    if (!dati_pers) { return; }
    string riga;
    cout << "LETTURA DATI APEX";
    dati_pers >> riga;
    while (!dati_pers.eof()) {
        cout << "\n\t" << riga;
        dati_pers >> riga;
    }
    dati_pers.close();
    cout << "\n\n\t";
    system("pause");
}
Salve a tutti, ho un problema. Io e i miei amici giochiamo a Apex e per tenere traccia delle mie partite sto creando un programma che mi aiuti a tenere conto delle partite. Purtroppo non riesco a farlo funzionare correttamente nel senso che non mostra nulla, uso principalmente Visual Studio per fare queste operazioni. Il linguaggio che uso è C++.
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Ci sono un pò di errori.

Innanzitutto hai creato string scelta = ""; come variabile globale, ma non ti serve globale.
Inoltre non leggi l'input da tastiera, quindi ovviamente il While non viene mai eseguito, così come gli if.

Per altro stai ridefinendo anche negli if le funzioni di inserimento e lettura... non devi indicare il tipo di ritorno della funzione quando la richiami.

Le condizioni del while sono sbagliate, devi usare "diverso da" e non "uguale a" se vuoi uscire con quelle opzioni (altrimenti, appunto, non verranno nemmeno mai eseguite queste istruzioni).

Inoltre ti basta un char, non ti serve una stringa.

Poi, un'altra cosa che vedo, è che non scrivi mai su file, quindi sarà sicuramente vuoto. Inoltre è meglio se eviti di usare gli spazi con i nomi dei file.
Ti mancherebbe anche il "return 0" nel main.

Ps. hai contrassegnato come RISOLTO il thread, è meglio se lo lasci come PROBLEMA (sempre se non hai risolto senza informarci).
 

GhostCrusher

Nuovo Utente
2
0
Ci sono un pò di errori.

Innanzitutto hai creato string scelta = ""; come variabile globale, ma non ti serve globale.
Inoltre non leggi l'input da tastiera, quindi ovviamente il While non viene mai eseguito, così come gli if.

Per altro stai ridefinendo anche negli if le funzioni di inserimento e lettura... non devi indicare il tipo di ritorno della funzione quando la richiami.

Le condizioni del while sono sbagliate, devi usare "diverso da" e non "uguale a" se vuoi uscire con quelle opzioni (altrimenti, appunto, non verranno nemmeno mai eseguite queste istruzioni).

Inoltre ti basta un char, non ti serve una stringa.

Poi, un'altra cosa che vedo, è che non scrivi mai su file, quindi sarà sicuramente vuoto. Inoltre è meglio se eviti di usare gli spazi con i nomi dei file.
Ti mancherebbe anche il "return 0" nel main.

Ps. hai contrassegnato come RISOLTO il thread, è meglio se lo lasci come PROBLEMA (sempre se non hai risolto senza informarci).
ok grazie si avevo messo risolto senza avvisare perchè lo sto rifacendo da capo. ma proverò anche il tuoi metodo. grazie ancora
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili