Problema lettura File c++

di Anonimizzato28732 il
6 risposte
Gentili utenti del forum, prendendo un file di testo che contiene una serie di informazioni di una struct per numero di elementi non specificato devo effettuarne la stampa sul programma, il programma pero continua a stampare spazi vuoti...qualcuno di voi saprebbe indicarmi l'errore in questo codice?? Grazie in anticipo.
#include<iostream>
#include<fstream>
using namespace std;

struct scontrini{
	int importo;
	string data;
	string genere_prodotto;
};

void carica(struct scontrini s[], int conteggio){

	ifstream myfile("registratore_di_cassa.txt", ios::in);
	if(!myfile){
		cout<<"errore in fase di lettura..."<<endl;
		exit(1);
	}
	while(!myfile.eof()){
		
		for(int i=0; i<100; i++){
		myfile>>s[i].genere_prodotto;
		myfile>>s[i].data;
		myfile>>s[i].importo;
		conteggio++;
		
		}
	}
	
	myfile.close();
	
	cout<<"lettura correttamente eseguita..."<<endl;
	
}

int main(){
	
	int conteggio=0;
	struct scontrini s[1000];
	carica(s, conteggio);
	
		for(int i=0; i<conteggio; i++){
		cout<<s[i].genere_prodotto<<" "<<s[i].data<<" "<<s[i].importo<<endl;
	}
	 
}

6 Risposte

  • E il file di testo come è fatto?
  • oregon ha scritto:


    E il file di testo come è fatto?
    una lista di cose:
    cibo 30/05/2000 23
    farmaco 17/09/1999 34
  • Perché ne leggi 100? E se non ce ne sono 100? Comprendi che quel ciclo for non ha senso?

    E poi, la variabile conteggio passata in quel modo non sarà mai modificata. Sai perché?
  • oregon ha scritto:


    Perché ne leggi 100? E se non ce ne sono 100? Comprendi che quel ciclo for non ha senso?

    E poi, la variabile conteggio passata in quel modo non sarà mai modificata. Sai perché?
    è proprio quello che mi interessa...come devo passarla in maniera corretta??
  • La variabile va passata per puntatore. Oppure non la passi proprio e la funzione carica non deve essere void ma restituire quel valore.

    E quel ciclo for, ripeto, non ha senso.

    P.S. Il titolo delle discussioni deve avere un senso, correggila.
  • oregon ha scritto:


    La variabile va passata per puntatore. Oppure non la passi proprio e la funzione carica non deve essere void ma restituire quel valore.

    E quel ciclo for, ripeto, non ha senso.

    P.S. Il titolo delle discussioni deve avere un senso, correggila.
    ti ringrazio, provvederò a correggere il titolo
Devi accedere o registrarti per scrivere nel forum
6 risposte